From 2bf065bb23148ab40571dd550c1d91e0165f4525 Mon Sep 17 00:00:00 2001 From: yaoshun01 Date: Fri, 5 Jan 2024 15:16:54 +0800 Subject: [PATCH 1/4] =?UTF-8?q?uniapp=20uikit=20=E6=94=AF=E6=8C=81=20vue2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 182c512..9903520 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ move ${NEUIKit组件项目路径}/src .\pages\NEUIKit ``` 成功后目录结构如图所示:
- + #### 步骤 3:在项目根目录下添加依赖和图片引入 From d4716dd49a111e000966583e9d9e846efe14e099 Mon Sep 17 00:00:00 2001 From: yaoshun01 Date: Thu, 29 Feb 2024 11:18:11 +0800 Subject: [PATCH 2/4] uniapp uikit 1.3.0 --- NEUIKit/App.vue | 153 + {vue2 => NEUIKit}/components/Appellation.vue | 3 +- {vue2 => NEUIKit}/components/Avatar.vue | 13 +- {vue2 => NEUIKit}/components/Badge.vue | 2 +- {vue2 => NEUIKit}/components/Empty.vue | 2 +- {vue2 => NEUIKit}/components/FormInput.vue | 1 + {vue2 => NEUIKit}/components/FriendSelect.vue | 3 +- {vue2 => NEUIKit}/components/Icon.vue | 4 +- .../components/MessageOneLine.vue | 12 +- {vue2 => NEUIKit}/components/Modal.vue | 1 + {vue2 => NEUIKit}/components/NavBar.vue | 1 - {vue2 => NEUIKit}/components/NetworkAlert.vue | 8 +- {vue2 => NEUIKit}/components/UserCard.vue | 9 +- {vue2 => NEUIKit}/locale/en.json | 2 +- {vue2 => NEUIKit}/locale/en.ts | 2 +- {vue2 => NEUIKit}/locale/zh-Hans.json | 2 +- {vue2 => NEUIKit}/locale/zh-Hans.ts | 2 +- {vue2 => NEUIKit}/pages.json | 2 +- {vue2 => NEUIKit}/pages/Chat/forward.vue | 18 +- {vue2 => NEUIKit}/pages/Chat/index.vue | 24 +- {vue2 => NEUIKit}/pages/Chat/message/face.vue | 8 +- .../pages/Chat/message/index.vue | 6 +- .../Chat/message/mention-member-list.vue | 10 +- .../pages/Chat/message/message-bubble.vue | 114 +- .../pages/Chat/message/message-file.vue | 2 +- .../Chat/message/message-forward-modal.vue | 0 .../pages/Chat/message/message-input.vue | 173 +- .../pages/Chat/message/message-item.vue | 6 +- .../pages/Chat/message/message-list.vue | 4 +- .../pages/Chat/message/message-reply.vue | 6 +- .../pages/Chat/message/message-section.vue | 0 .../pages/Chat/message/message-text.vue | 2 +- .../pages/Chat/message/p2p-set.vue | 0 .../pages/Contact/contact-list/black-list.vue | 10 +- .../Contact/contact-list/friend-list.vue | 2 + .../pages/Contact/contact-list/group-list.vue | 2 + .../pages/Contact/contact-list/index.vue | 24 +- .../pages/Contact/contact-list/valid-list.vue | 103 +- {vue2 => NEUIKit}/pages/Contact/index.vue | 1 + .../conversation-list/conversation-item.vue | 16 +- .../Conversation/conversation-list/index.vue | 67 +- .../pages/Conversation/index.vue | 5 +- .../pages/Friend/add-friend/index.vue | 48 +- .../pages/Group/group-add/index.vue | 19 +- .../pages/Group/group-create/index.vue | 20 +- .../pages/Group/group-member/index.vue | 11 +- .../pages/Group/group-set/group-info-edit.vue | 12 +- .../pages/Group/group-set/index.vue | 23 +- .../pages/Login/components/form-input.vue | 0 .../pages/Login/components/login-form.vue | 3 +- .../pages/Login/components/welcome.vue | 4 +- .../src => NEUIKit}/pages/Login/i18n/zh-cn.ts | 1 + {vue2 => NEUIKit}/pages/Login/index.vue | 3 +- .../pages/Login/static/welcome-bottom.png | Bin .../pages/Login/static/welcome.png | Bin NEUIKit/pages/Login/utils/api.ts | 103 + {vue2 => NEUIKit}/pages/index/index.vue | 0 {vue2 => NEUIKit}/pages/styles/common.scss | 1 + .../pages/user-card/detail-item/index.vue | 40 +- .../pages/user-card/friend/index.vue | 25 +- .../pages/user-card/my-detail/index.vue | 4 + .../pages/user-card/my/index.vue | 2 + .../pages/user-card/my/setting.vue | 1 + {vue2 => NEUIKit}/static/contact-selected.png | Bin {vue2 => NEUIKit}/static/contact.png | Bin .../static/conversation-selected.png | Bin {vue2 => NEUIKit}/static/conversation.png | Bin {vue2 => NEUIKit}/static/empty.png | Bin {vue2 => NEUIKit}/static/icons/icon-Excel.png | Bin {vue2 => NEUIKit}/static/icons/icon-More.png | Bin {vue2 => NEUIKit}/static/icons/icon-PPT.png | Bin {vue2 => NEUIKit}/static/icons/icon-RAR1.png | Bin {vue2 => NEUIKit}/static/icons/icon-Word.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-1.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-10.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-11.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-12.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-13.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-14.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-15.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-16.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-17.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-18.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-19.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-2.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-20.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-21.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-22.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-23.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-24.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-25.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-26.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-27.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-28.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-29.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-3.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-30.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-31.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-32.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-33.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-34.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-35.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-36.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-37.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-38.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-39.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-4.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-40.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-41.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-42.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-43.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-44.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-45.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-46.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-47.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-48.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-49.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-5.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-50.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-51.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-52.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-53.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-54.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-55.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-56.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-57.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-58.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-59.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-6.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-60.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-61.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-62.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-63.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-64.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-65.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-66.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-67.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-68.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-7.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-70.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-8.png | Bin {vue2 => NEUIKit}/static/icons/icon-a-9.png | Bin .../static/icons/icon-a-Frame7.png | Bin .../static/icons/icon-a-Frame8.png | Bin .../static/icons/icon-addition.png | Bin .../static/icons/icon-biaoqing.png | Bin .../static/icons/icon-chehui.png | Bin .../static/icons/icon-chuangjianqunzu.png | Bin .../static/icons/icon-computed.png | Bin .../static/icons/icon-erfenzhiyiyidu.png | Bin .../static/icons/icon-fasong.png | Bin .../static/icons/icon-fuzhi1.png | Bin .../static/icons/icon-guanbi.png | Bin .../static/icons/icon-guanyu.png | Bin {vue2 => NEUIKit}/static/icons/icon-huifu.png | Bin .../static/icons/icon-im-xuanzhong.png | Bin {vue2 => NEUIKit}/static/icons/icon-im.png | Bin .../static/icons/icon-jiantou.png | Bin .../static/icons/icon-jiaruqunzu.png | Bin {vue2 => NEUIKit}/static/icons/icon-kefu.png | Bin {vue2 => NEUIKit}/static/icons/icon-lahei.png | Bin .../static/icons/icon-lahei2.png | Bin .../static/icons/icon-lishixiaoxi.png | Bin {vue2 => NEUIKit}/static/icons/icon-qita.png | Bin .../icons/icon-quxiaoxiaoximiandarao.png | Bin .../static/icons/icon-quxiaozhiding.png | Bin .../static/icons/icon-shanchu.png | Bin .../static/icons/icon-shandiao.png | Bin .../static/icons/icon-shezhi.png | Bin .../static/icons/icon-shezhi1.png | Bin .../static/icons/icon-shipin.png | Bin .../static/icons/icon-shipin8.png | Bin .../static/icons/icon-shipinyuyin.png | Bin .../static/icons/icon-sifenzhisanyidu.png | Bin .../static/icons/icon-sifenzhiyiyidu.png | Bin .../static/icons/icon-sousuo.png | Bin {vue2 => NEUIKit}/static/icons/icon-team.png | Bin {vue2 => NEUIKit}/static/icons/icon-team2.png | Bin .../static/icons/icon-tianjiaanniu.png | Bin .../static/icons/icon-tianjiahaoyou.png | Bin .../icons/icon-tongxunlu-weixuanzhong.png | Bin .../static/icons/icon-tongxunlu-xuanzhong.png | Bin .../static/icons/icon-touxiang1.png | Bin .../static/icons/icon-touxiang2.png | Bin .../static/icons/icon-touxiang3.png | Bin .../static/icons/icon-touxiang4.png | Bin .../static/icons/icon-touxiang5.png | Bin .../static/icons/icon-tuichudenglu.png | Bin .../static/icons/icon-tuigejian.png | Bin .../static/icons/icon-tupian.png | Bin .../static/icons/icon-tupian1.png | Bin .../static/icons/icon-tupian2.png | Bin {vue2 => NEUIKit}/static/icons/icon-weidu.png | Bin .../static/icons/icon-weizhiwenjian.png | Bin .../static/icons/icon-wenjian.png | Bin .../static/icons/icon-xiaoximiandarao.png | Bin .../static/icons/icon-xiaoxizhiding.png | Bin .../static/icons/icon-yanzheng.png | Bin {vue2 => NEUIKit}/static/icons/icon-yidu.png | Bin {vue2 => NEUIKit}/static/icons/icon-yinle.png | Bin .../static/icons/icon-yuyin1.png | Bin .../static/icons/icon-yuyin2.png | Bin .../static/icons/icon-yuyin3.png | Bin .../static/icons/icon-yuyin8.png | Bin .../static/icons/icon-zhankai.png | Bin .../static/icons/icon-zhongyingwen.png | Bin .../static/icons/icon-zhuanfa.png | Bin .../static/icons/icon-zuojiantou.png | Bin {vue2 => NEUIKit}/static/logo.png | Bin {vue2 => NEUIKit}/static/me-selected.png | Bin {vue2 => NEUIKit}/static/me.png | Bin {vue2 => NEUIKit}/static/welcome-bottom.png | Bin {vue2 => NEUIKit}/static/welcome.png | Bin {vue2 => NEUIKit}/uni.scss | 0 .../uni_modules/uni-link/changelog.md | 0 .../uni-link/components/uni-link/uni-link.vue | 0 .../uni_modules/uni-link/package.json | 0 .../uni_modules/uni-link/readme.md | 0 .../uni_modules/uni-popup/changelog.md | 0 .../components/uni-popup-dialog/keypress.js | 0 .../uni-popup-dialog/uni-popup-dialog.vue | 0 .../uni-popup-message/uni-popup-message.vue | 0 .../uni-popup-share/uni-popup-share.vue | 0 .../components/uni-popup/i18n/en.json | 0 .../components/uni-popup/i18n/index.js | 0 .../components/uni-popup/i18n/zh-Hans.json | 0 .../components/uni-popup/i18n/zh-Hant.json | 0 .../components/uni-popup/keypress.js | 0 .../uni-popup/components/uni-popup/popup.js | 0 .../components/uni-popup/uni-popup.vue | 0 .../uni_modules/uni-popup/package.json | 0 .../uni_modules/uni-popup/readme.md | 0 .../uni_modules/uni-scss/changelog.md | 0 .../uni_modules/uni-scss/index.scss | 0 .../uni_modules/uni-scss/package.json | 0 .../uni_modules/uni-scss/readme.md | 0 .../uni_modules/uni-scss/styles/index.scss | 0 .../uni-scss/styles/setting/_border.scss | 0 .../uni-scss/styles/setting/_color.scss | 0 .../uni-scss/styles/setting/_radius.scss | 0 .../uni-scss/styles/setting/_space.scss | 0 .../uni-scss/styles/setting/_styles.scss | 0 .../uni-scss/styles/setting/_text.scss | 0 .../uni-scss/styles/setting/_variables.scss | 0 .../uni-scss/styles/tools/functions.scss | 0 .../uni_modules/uni-scss/theme.scss | 0 .../uni_modules/uni-scss/variables.scss | 0 .../uni_modules/uni-transition/changelog.md | 0 .../uni-transition/createAnimation.js | 0 .../uni-transition/uni-transition.vue | 0 .../uni_modules/uni-transition/package.json | 0 .../uni_modules/uni-transition/readme.md | 0 .../uni_modules/zb-tooltip/changelog.md | 0 .../components/zb-tooltip/zb-tooltip.vue | 0 .../uni_modules/zb-tooltip/package.json | 0 .../uni_modules/zb-tooltip/readme.md | 0 {vue2 => NEUIKit}/utils/constants.ts | 0 {vue2 => NEUIKit}/utils/customNavigate.ts | 0 {vue2 => NEUIKit}/utils/date.ts | 0 {vue2 => NEUIKit}/utils/emoji.ts | 0 {vue2 => NEUIKit}/utils/encodeText.ts | 0 {vue2 => NEUIKit}/utils/friend.ts | 0 {vue2 => NEUIKit}/utils/i18n.ts | 0 {vue2 => NEUIKit}/utils/index.ts | 2 + {vue2 => NEUIKit}/utils/matrix.ts | 0 {vue2 => NEUIKit}/utils/msg.ts | 4 +- {vue2 => NEUIKit}/utils/parseText.ts | 0 {vue2 => NEUIKit}/utils/permission.ts | 0 NEUIKit/utils/reporter.ts | 19 + {vue2 => NEUIKit}/utils/transformVue.ts | 4 +- README.md | 478 +- im-uniapp-ui-vue2/.hbuilderx/launch.json | 23 + im-uniapp-ui-vue2/App.vue | 153 + im-uniapp-ui-vue2/components/Appellation.vue | 60 + im-uniapp-ui-vue2/components/Avatar.vue | 184 + im-uniapp-ui-vue2/components/Badge.vue | 64 + im-uniapp-ui-vue2/components/Empty.vue | 37 + .../components/FormInput.vue | 62 +- .../components/FriendSelect.vue | 38 +- im-uniapp-ui-vue2/components/Icon.vue | 196 + .../components/MessageOneLine.vue | 19 +- .../components/Modal.vue | 33 +- .../components/NavBar.vue | 53 +- .../components/NetworkAlert.vue | 10 +- .../components/UserCard.vue | 22 +- {vue2 => im-uniapp-ui-vue2}/env.d.ts | 0 {vue2 => im-uniapp-ui-vue2}/index.html | 0 .../src => im-uniapp-ui-vue2}/locale/en.json | 2 +- {vue3/src => im-uniapp-ui-vue2}/locale/en.ts | 5 +- .../locale/zh-Hans.json | 2 +- .../locale/zh-Hans.ts | 8 +- {vue2 => im-uniapp-ui-vue2}/main.js | 0 {vue2 => im-uniapp-ui-vue2}/manifest.json | 4 +- {vue2 => im-uniapp-ui-vue2}/package-lock.json | 3830 +-- {vue2 => im-uniapp-ui-vue2}/package.json | 4 +- {vue3/src => im-uniapp-ui-vue2}/pages.json | 6 +- im-uniapp-ui-vue2/pages/Chat/forward.vue | 237 + im-uniapp-ui-vue2/pages/Chat/index.vue | 126 + .../pages/Chat/message/face.vue | 36 +- .../pages/Chat/message/index.vue | 171 +- .../Chat/message/mention-member-list.vue | 170 + .../pages/Chat/message/message-bubble.vue | 191 +- .../pages/Chat/message/message-file.vue | 39 +- .../Chat/message/message-forward-modal.vue | 144 + .../pages/Chat/message/message-input.vue | 462 +- .../pages/Chat/message/message-item.vue | 333 + .../pages/Chat/message/message-list.vue | 256 + .../pages/Chat/message/message-reply.vue | 182 + .../pages/Chat/message/message-section.vue | 32 +- .../pages/Chat/message/message-text.vue | 22 +- .../pages/Chat/message/p2p-set.vue | 70 +- .../pages/Contact/contact-list/black-list.vue | 27 +- .../Contact/contact-list/friend-list.vue | 17 +- .../pages/Contact/contact-list/group-list.vue | 15 +- .../pages/Contact/contact-list/index.vue | 263 + .../pages/Contact/contact-list/valid-list.vue | 190 +- .../pages/Contact/index.vue | 3 +- .../conversation-list/conversation-item.vue | 131 +- .../Conversation/conversation-list/index.vue | 341 + .../pages/Conversation/index.vue | 48 + .../pages/Friend/add-friend/index.vue | 96 +- .../pages/Group/group-add/index.vue | 139 + .../pages/Group/group-create/index.vue | 52 +- .../pages/Group/group-member/index.vue | 38 +- .../pages/Group/group-set/group-info-edit.vue | 23 +- .../pages/Group/group-set/index.vue | 135 +- .../pages/Login/components/form-input.vue | 107 + .../pages/Login/components/login-form.vue | 59 +- .../pages/Login/components/welcome.vue | 20 +- .../pages/Login/i18n/zh-cn.ts | 1 + im-uniapp-ui-vue2/pages/Login/index.vue | 37 + .../pages/Login/static/welcome-bottom.png | Bin .../pages/Login/static/welcome.png | Bin .../pages/Login/utils/api.ts | 9 +- .../pages/index/index.vue | 0 .../pages/styles/common.scss | 1 + .../pages/user-card/detail-item/index.vue | 54 +- .../pages/user-card/friend/index.vue | 111 +- .../pages/user-card/my-detail/index.vue | 77 +- .../pages/user-card/my/index.vue | 63 +- .../pages/user-card/my/setting.vue | 5 +- .../static/contact-selected.png | Bin .../static/contact.png | Bin .../static/conversation-selected.png | Bin .../static/conversation.png | Bin im-uniapp-ui-vue2/static/empty.png | Bin 0 -> 12064 bytes im-uniapp-ui-vue2/static/icons/icon-Excel.png | Bin 0 -> 1875 bytes im-uniapp-ui-vue2/static/icons/icon-More.png | Bin 0 -> 788 bytes im-uniapp-ui-vue2/static/icons/icon-PPT.png | Bin 0 -> 1629 bytes im-uniapp-ui-vue2/static/icons/icon-RAR1.png | Bin 0 -> 1113 bytes im-uniapp-ui-vue2/static/icons/icon-Word.png | Bin 0 -> 2382 bytes im-uniapp-ui-vue2/static/icons/icon-a-1.png | Bin 0 -> 3136 bytes im-uniapp-ui-vue2/static/icons/icon-a-10.png | Bin 0 -> 3720 bytes im-uniapp-ui-vue2/static/icons/icon-a-11.png | Bin 0 -> 3273 bytes im-uniapp-ui-vue2/static/icons/icon-a-12.png | Bin 0 -> 2753 bytes im-uniapp-ui-vue2/static/icons/icon-a-13.png | Bin 0 -> 3411 bytes im-uniapp-ui-vue2/static/icons/icon-a-14.png | Bin 0 -> 2580 bytes im-uniapp-ui-vue2/static/icons/icon-a-15.png | Bin 0 -> 3590 bytes im-uniapp-ui-vue2/static/icons/icon-a-16.png | Bin 0 -> 3668 bytes im-uniapp-ui-vue2/static/icons/icon-a-17.png | Bin 0 -> 3651 bytes im-uniapp-ui-vue2/static/icons/icon-a-18.png | Bin 0 -> 4375 bytes im-uniapp-ui-vue2/static/icons/icon-a-19.png | Bin 0 -> 4212 bytes im-uniapp-ui-vue2/static/icons/icon-a-2.png | Bin 0 -> 2953 bytes im-uniapp-ui-vue2/static/icons/icon-a-20.png | Bin 0 -> 3603 bytes im-uniapp-ui-vue2/static/icons/icon-a-21.png | Bin 0 -> 3771 bytes im-uniapp-ui-vue2/static/icons/icon-a-22.png | Bin 0 -> 3609 bytes im-uniapp-ui-vue2/static/icons/icon-a-23.png | Bin 0 -> 4522 bytes im-uniapp-ui-vue2/static/icons/icon-a-24.png | Bin 0 -> 3603 bytes im-uniapp-ui-vue2/static/icons/icon-a-25.png | Bin 0 -> 4293 bytes im-uniapp-ui-vue2/static/icons/icon-a-26.png | Bin 0 -> 3253 bytes im-uniapp-ui-vue2/static/icons/icon-a-27.png | Bin 0 -> 3360 bytes im-uniapp-ui-vue2/static/icons/icon-a-28.png | Bin 0 -> 2995 bytes im-uniapp-ui-vue2/static/icons/icon-a-29.png | Bin 0 -> 2307 bytes im-uniapp-ui-vue2/static/icons/icon-a-3.png | Bin 0 -> 3437 bytes im-uniapp-ui-vue2/static/icons/icon-a-30.png | Bin 0 -> 1955 bytes im-uniapp-ui-vue2/static/icons/icon-a-31.png | Bin 0 -> 2790 bytes im-uniapp-ui-vue2/static/icons/icon-a-32.png | Bin 0 -> 2781 bytes im-uniapp-ui-vue2/static/icons/icon-a-33.png | Bin 0 -> 2460 bytes im-uniapp-ui-vue2/static/icons/icon-a-34.png | Bin 0 -> 3541 bytes im-uniapp-ui-vue2/static/icons/icon-a-35.png | Bin 0 -> 2727 bytes im-uniapp-ui-vue2/static/icons/icon-a-36.png | Bin 0 -> 3090 bytes im-uniapp-ui-vue2/static/icons/icon-a-37.png | Bin 0 -> 2747 bytes im-uniapp-ui-vue2/static/icons/icon-a-38.png | Bin 0 -> 4550 bytes im-uniapp-ui-vue2/static/icons/icon-a-39.png | Bin 0 -> 2498 bytes im-uniapp-ui-vue2/static/icons/icon-a-4.png | Bin 0 -> 3126 bytes im-uniapp-ui-vue2/static/icons/icon-a-40.png | Bin 0 -> 2991 bytes im-uniapp-ui-vue2/static/icons/icon-a-41.png | Bin 0 -> 2273 bytes im-uniapp-ui-vue2/static/icons/icon-a-42.png | Bin 0 -> 2543 bytes im-uniapp-ui-vue2/static/icons/icon-a-43.png | Bin 0 -> 2588 bytes im-uniapp-ui-vue2/static/icons/icon-a-44.png | Bin 0 -> 2665 bytes im-uniapp-ui-vue2/static/icons/icon-a-45.png | Bin 0 -> 2534 bytes im-uniapp-ui-vue2/static/icons/icon-a-46.png | Bin 0 -> 3496 bytes im-uniapp-ui-vue2/static/icons/icon-a-47.png | Bin 0 -> 2420 bytes im-uniapp-ui-vue2/static/icons/icon-a-48.png | Bin 0 -> 2395 bytes im-uniapp-ui-vue2/static/icons/icon-a-49.png | Bin 0 -> 3545 bytes im-uniapp-ui-vue2/static/icons/icon-a-5.png | Bin 0 -> 2994 bytes im-uniapp-ui-vue2/static/icons/icon-a-50.png | Bin 0 -> 4052 bytes im-uniapp-ui-vue2/static/icons/icon-a-51.png | Bin 0 -> 2184 bytes im-uniapp-ui-vue2/static/icons/icon-a-52.png | Bin 0 -> 2589 bytes im-uniapp-ui-vue2/static/icons/icon-a-53.png | Bin 0 -> 1912 bytes im-uniapp-ui-vue2/static/icons/icon-a-54.png | Bin 0 -> 2663 bytes im-uniapp-ui-vue2/static/icons/icon-a-55.png | Bin 0 -> 3458 bytes im-uniapp-ui-vue2/static/icons/icon-a-56.png | Bin 0 -> 4609 bytes im-uniapp-ui-vue2/static/icons/icon-a-57.png | Bin 0 -> 4463 bytes im-uniapp-ui-vue2/static/icons/icon-a-58.png | Bin 0 -> 4145 bytes im-uniapp-ui-vue2/static/icons/icon-a-59.png | Bin 0 -> 4768 bytes im-uniapp-ui-vue2/static/icons/icon-a-6.png | Bin 0 -> 3977 bytes im-uniapp-ui-vue2/static/icons/icon-a-60.png | Bin 0 -> 4506 bytes im-uniapp-ui-vue2/static/icons/icon-a-61.png | Bin 0 -> 4472 bytes im-uniapp-ui-vue2/static/icons/icon-a-62.png | Bin 0 -> 3860 bytes im-uniapp-ui-vue2/static/icons/icon-a-63.png | Bin 0 -> 3718 bytes im-uniapp-ui-vue2/static/icons/icon-a-64.png | Bin 0 -> 2035 bytes im-uniapp-ui-vue2/static/icons/icon-a-65.png | Bin 0 -> 1349 bytes im-uniapp-ui-vue2/static/icons/icon-a-66.png | Bin 0 -> 2118 bytes im-uniapp-ui-vue2/static/icons/icon-a-67.png | Bin 0 -> 3969 bytes im-uniapp-ui-vue2/static/icons/icon-a-68.png | Bin 0 -> 2989 bytes im-uniapp-ui-vue2/static/icons/icon-a-7.png | Bin 0 -> 3001 bytes im-uniapp-ui-vue2/static/icons/icon-a-70.png | Bin 0 -> 3556 bytes im-uniapp-ui-vue2/static/icons/icon-a-8.png | Bin 0 -> 3063 bytes im-uniapp-ui-vue2/static/icons/icon-a-9.png | Bin 0 -> 3672 bytes .../static/icons/icon-a-Frame7.png | Bin 0 -> 5330 bytes .../static/icons/icon-a-Frame8.png | Bin 0 -> 1046 bytes .../static/icons/icon-addition.png | Bin 0 -> 2230 bytes .../static/icons/icon-biaoqing.png | Bin 0 -> 2744 bytes .../static/icons/icon-chehui.png | Bin 0 -> 1589 bytes .../static/icons/icon-chuangjianqunzu.png | Bin 0 -> 2924 bytes .../static/icons/icon-computed.png | Bin 0 -> 977 bytes .../static/icons/icon-erfenzhiyiyidu.png | Bin 0 -> 1826 bytes .../static/icons/icon-fasong.png | Bin 0 -> 1421 bytes .../static/icons/icon-fuzhi1.png | Bin 0 -> 937 bytes .../static/icons/icon-guanbi.png | Bin 0 -> 1590 bytes .../static/icons/icon-guanyu.png | Bin 0 -> 2724 bytes im-uniapp-ui-vue2/static/icons/icon-huifu.png | Bin 0 -> 1093 bytes .../static/icons/icon-im-xuanzhong.png | Bin 0 -> 2321 bytes im-uniapp-ui-vue2/static/icons/icon-im.png | Bin 0 -> 2097 bytes .../static/icons/icon-jiantou.png | Bin 0 -> 1129 bytes .../static/icons/icon-jiaruqunzu.png | Bin 0 -> 2893 bytes im-uniapp-ui-vue2/static/icons/icon-kefu.png | Bin 0 -> 2478 bytes im-uniapp-ui-vue2/static/icons/icon-lahei.png | Bin 0 -> 3394 bytes .../static/icons/icon-lahei2.png | Bin 0 -> 1316 bytes .../static/icons/icon-lishixiaoxi.png | Bin 0 -> 2092 bytes im-uniapp-ui-vue2/static/icons/icon-qita.png | Bin 0 -> 1487 bytes .../icons/icon-quxiaoxiaoximiandarao.png | Bin 0 -> 1824 bytes .../static/icons/icon-quxiaozhiding.png | Bin 0 -> 1605 bytes .../static/icons/icon-shanchu.png | Bin 0 -> 1495 bytes .../static/icons/icon-shandiao.png | Bin 0 -> 2841 bytes .../static/icons/icon-shezhi.png | Bin 0 -> 2132 bytes .../static/icons/icon-shezhi1.png | Bin 0 -> 3089 bytes .../static/icons/icon-shipin.png | Bin 0 -> 1215 bytes .../static/icons/icon-shipin8.png | Bin 0 -> 1040 bytes .../static/icons/icon-shipinyuyin.png | Bin 0 -> 1997 bytes .../static/icons/icon-sifenzhisanyidu.png | Bin 0 -> 1845 bytes .../static/icons/icon-sifenzhiyiyidu.png | Bin 0 -> 2157 bytes .../static/icons/icon-sousuo.png | Bin 0 -> 2555 bytes im-uniapp-ui-vue2/static/icons/icon-team.png | Bin 0 -> 2479 bytes im-uniapp-ui-vue2/static/icons/icon-team2.png | Bin 0 -> 1338 bytes .../static/icons/icon-tianjiaanniu.png | Bin 0 -> 1102 bytes .../static/icons/icon-tianjiahaoyou.png | Bin 0 -> 2140 bytes .../icons/icon-tongxunlu-weixuanzhong.png | Bin 0 -> 1379 bytes .../static/icons/icon-tongxunlu-xuanzhong.png | Bin 0 -> 1384 bytes .../static/icons/icon-touxiang1.png | Bin 0 -> 3090 bytes .../static/icons/icon-touxiang2.png | Bin 0 -> 3253 bytes .../static/icons/icon-touxiang3.png | Bin 0 -> 3403 bytes .../static/icons/icon-touxiang4.png | Bin 0 -> 3635 bytes .../static/icons/icon-touxiang5.png | Bin 0 -> 3475 bytes .../static/icons/icon-tuichudenglu.png | Bin 0 -> 1405 bytes .../static/icons/icon-tuigejian.png | Bin 0 -> 1960 bytes .../static/icons/icon-tupian.png | Bin 0 -> 1443 bytes .../static/icons/icon-tupian1.png | Bin 0 -> 2121 bytes .../static/icons/icon-tupian2.png | Bin 0 -> 1873 bytes im-uniapp-ui-vue2/static/icons/icon-weidu.png | Bin 0 -> 1929 bytes .../static/icons/icon-weizhiwenjian.png | Bin 0 -> 1949 bytes .../static/icons/icon-wenjian.png | Bin 0 -> 1153 bytes .../static/icons/icon-xiaoximiandarao.png | Bin 0 -> 2380 bytes .../static/icons/icon-xiaoxizhiding.png | Bin 0 -> 1455 bytes .../static/icons/icon-yanzheng.png | Bin 0 -> 1151 bytes im-uniapp-ui-vue2/static/icons/icon-yidu.png | Bin 0 -> 2507 bytes im-uniapp-ui-vue2/static/icons/icon-yinle.png | Bin 0 -> 1840 bytes .../static/icons/icon-yuyin1.png | Bin 0 -> 375 bytes .../static/icons/icon-yuyin2.png | Bin 0 -> 909 bytes .../static/icons/icon-yuyin3.png | Bin 0 -> 1427 bytes .../static/icons/icon-yuyin8.png | Bin 0 -> 1954 bytes .../static/icons/icon-zhankai.png | Bin 0 -> 1162 bytes .../static/icons/icon-zhongyingwen.png | Bin 0 -> 2586 bytes .../static/icons/icon-zhuanfa.png | Bin 0 -> 1348 bytes .../static/icons/icon-zuojiantou.png | Bin 0 -> 766 bytes .../src => im-uniapp-ui-vue2}/static/logo.png | Bin .../static/me-selected.png | Bin {vue3/src => im-uniapp-ui-vue2}/static/me.png | Bin .../static/welcome-bottom.png | Bin .../static/welcome.png | Bin {vue2 => im-uniapp-ui-vue2}/tsconfig.json | 0 .../uni.promisify.adaptor.js | 0 im-uniapp-ui-vue2/uni.scss | 76 + .../uni_modules/uni-link/changelog.md | 0 .../uni-link/components/uni-link/uni-link.vue | 0 .../uni_modules/uni-link/package.json | 0 .../uni_modules/uni-link/readme.md | 0 .../uni_modules/uni-popup/changelog.md | 0 .../components/uni-popup-dialog/keypress.js | 0 .../uni-popup-dialog/uni-popup-dialog.vue | 0 .../uni-popup-message/uni-popup-message.vue | 0 .../uni-popup-share/uni-popup-share.vue | 0 .../components/uni-popup/i18n/en.json | 0 .../components/uni-popup/i18n/index.js | 0 .../components/uni-popup/i18n/zh-Hans.json | 0 .../components/uni-popup/i18n/zh-Hant.json | 0 .../components/uni-popup/keypress.js | 0 .../uni-popup/components/uni-popup/popup.js | 0 .../components/uni-popup/uni-popup.vue | 0 .../uni_modules/uni-popup/package.json | 0 .../uni_modules/uni-popup/readme.md | 0 .../uni_modules/uni-scss/changelog.md | 0 .../uni_modules/uni-scss/index.scss | 0 .../uni_modules/uni-scss/package.json | 0 .../uni_modules/uni-scss/readme.md | 0 .../uni_modules/uni-scss/styles/index.scss | 0 .../uni-scss/styles/setting/_border.scss | 0 .../uni-scss/styles/setting/_color.scss | 0 .../uni-scss/styles/setting/_radius.scss | 0 .../uni-scss/styles/setting/_space.scss | 0 .../uni-scss/styles/setting/_styles.scss | 0 .../uni-scss/styles/setting/_text.scss | 0 .../uni-scss/styles/setting/_variables.scss | 0 .../uni-scss/styles/tools/functions.scss | 0 .../uni_modules/uni-scss/theme.scss | 0 .../uni_modules/uni-scss/variables.scss | 0 .../uni_modules/uni-transition/changelog.md | 0 .../uni-transition/createAnimation.js | 0 .../uni-transition/uni-transition.vue | 0 .../uni_modules/uni-transition/package.json | 0 .../uni_modules/uni-transition/readme.md | 0 .../uni_modules/zb-tooltip/changelog.md | 0 .../components/zb-tooltip/zb-tooltip.vue | 312 + .../uni_modules/zb-tooltip/package.json | 0 .../uni_modules/zb-tooltip/readme.md | 0 .../utils/constants.ts | 24 +- .../utils/customNavigate.ts | 1 + {vue3/src => im-uniapp-ui-vue2}/utils/date.ts | 0 .../src => im-uniapp-ui-vue2}/utils/emoji.ts | 0 .../utils/encodeText.ts | 0 .../src => im-uniapp-ui-vue2}/utils/friend.ts | 0 im-uniapp-ui-vue2/utils/i18n.ts | 15 + im-uniapp-ui-vue2/utils/index.ts | 55 + .../src => im-uniapp-ui-vue2}/utils/matrix.ts | 0 {vue3/src => im-uniapp-ui-vue2}/utils/msg.ts | 4 +- .../utils/parseText.ts | 0 .../utils/permission.ts | 0 im-uniapp-ui-vue2/utils/reporter.ts | 19 + .../utils/svgString.ts | 0 im-uniapp-ui-vue2/utils/transformVue.ts | 12 + {vue2 => im-uniapp-ui-vue2}/vue.config.js | 0 im-uniapp-ui-vue2/yarn.lock | 2348 ++ im-uniapp-ui/.gitignore | 21 + {vue3 => im-uniapp-ui}/CHANGELOG.md | 0 im-uniapp-ui/README.md | 456 + {vue3 => im-uniapp-ui}/iconfont.json | 0 {vue3 => im-uniapp-ui}/index.html | 0 .../android/MiPush_SDK_Client_5_1_0-C_3rd.aar | Bin 0 -> 652913 bytes .../android/assets/agconnect-services.json | 96 + .../android/com.heytap.msp_3.1.0.aar | Bin 0 -> 141742 bytes .../NIMUniPlugin/android/nim-uni-plugin.aar | Bin 0 -> 164280 bytes .../android/vivo_pushSDK_v3.0.0.4_484.aar | Bin 0 -> 162141 bytes .../ios/NIMUniPlugin.framework/Info.plist | Bin 0 -> 762 bytes .../ios/NIMUniPlugin.framework/NIMUniPlugin | Bin 0 -> 222680 bytes .../_CodeSignature/CodeDirectory | Bin 0 -> 182 bytes .../_CodeSignature/CodeRequirements | Bin 0 -> 208 bytes .../_CodeSignature/CodeRequirements-1 | Bin 0 -> 230 bytes .../_CodeSignature/CodeResources | 101 + .../_CodeSignature/CodeSignature | Bin 0 -> 4862 bytes .../nativeplugins/NIMUniPlugin/package.json | 64 + {vue3 => im-uniapp-ui}/package-lock.json | 27712 +++++++++------- {vue3 => im-uniapp-ui}/package.json | 44 +- im-uniapp-ui/src/App.vue | 153 + im-uniapp-ui/src/README.md | 456 + im-uniapp-ui/src/components/Appellation.vue | 60 + im-uniapp-ui/src/components/Avatar.vue | 184 + im-uniapp-ui/src/components/Badge.vue | 64 + im-uniapp-ui/src/components/Empty.vue | 37 + im-uniapp-ui/src/components/FormInput.vue | 122 + im-uniapp-ui/src/components/FriendSelect.vue | 92 + im-uniapp-ui/src/components/Icon.vue | 196 + .../src/components/MessageOneLine.vue | 104 + im-uniapp-ui/src/components/Modal.vue | 121 + im-uniapp-ui/src/components/NavBar.vue | 100 + im-uniapp-ui/src/components/NetworkAlert.vue | 47 + im-uniapp-ui/src/components/UserCard.vue | 80 + {vue3 => im-uniapp-ui}/src/env.d.ts | 0 im-uniapp-ui/src/locale/en.json | 5 + im-uniapp-ui/src/locale/en.ts | 255 + im-uniapp-ui/src/locale/zh-Hans.json | 5 + im-uniapp-ui/src/locale/zh-Hans.ts | 249 + {vue3 => im-uniapp-ui}/src/main.ts | 2 - im-uniapp-ui/src/manifest.json | 126 + im-uniapp-ui/src/pages.json | 160 + im-uniapp-ui/src/pages/Chat/forward.vue | 237 + im-uniapp-ui/src/pages/Chat/index.vue | 126 + im-uniapp-ui/src/pages/Chat/message/face.vue | 109 + im-uniapp-ui/src/pages/Chat/message/index.vue | 235 + .../Chat/message/mention-member-list.vue | 170 + .../src/pages/Chat/message/message-avatar.vue | 0 .../src/pages/Chat/message/message-bubble.vue | 433 + .../src/pages/Chat/message/message-file.vue | 120 + .../Chat/message/message-forward-modal.vue | 144 + .../src/pages/Chat/message/message-input.vue | 621 + .../src/pages/Chat/message/message-item.vue | 333 + .../src/pages/Chat/message/message-list.vue | 256 + .../src/pages/Chat/message/message-reply.vue | 182 + .../pages/Chat/message/message-section.vue | 68 + .../src/pages/Chat/message/message-text.vue | 62 + .../src/pages/Chat/message/p2p-set.vue | 228 + .../pages/Contact/contact-list/black-list.vue | 125 + .../Contact/contact-list/friend-list.vue | 86 + .../pages/Contact/contact-list/group-list.vue | 81 + .../src/pages/Contact/contact-list/index.vue | 263 + .../pages/Contact/contact-list/valid-list.vue | 419 + im-uniapp-ui/src/pages/Contact/index.vue | 26 + .../conversation-list/conversation-item.vue | 330 + .../Conversation/conversation-list/index.vue | 341 + im-uniapp-ui/src/pages/Conversation/index.vue | 48 + .../src/pages/Friend/add-friend/index.vue | 228 + .../src/pages/Group/group-add/index.vue | 139 + .../src/pages/Group/group-create/index.vue | 185 + .../src/pages/Group/group-member/index.vue | 85 + .../pages/Group/group-set/group-info-edit.vue | 115 + .../src/pages/Group/group-set/index.vue | 319 + .../src/pages/Login/components/form-input.vue | 107 + .../src/pages/Login/components/login-form.vue | 206 + .../src/pages/Login/components/welcome.vue | 54 + im-uniapp-ui/src/pages/Login/i18n/zh-cn.ts | 17 + im-uniapp-ui/src/pages/Login/index.vue | 37 + .../src/pages/Login/static/welcome-bottom.png | Bin 0 -> 3282 bytes .../src/pages/Login/static/welcome.png | Bin 0 -> 24208 bytes .../src/pages/Login/utils/api.ts | 20 +- im-uniapp-ui/src/pages/index/index.vue | 7 + im-uniapp-ui/src/pages/styles/common.scss | 100 + .../src/pages/user-card/detail-item/index.vue | 157 + .../src/pages/user-card/friend/index.vue | 236 + .../src/pages/user-card/my-detail/index.vue | 304 + im-uniapp-ui/src/pages/user-card/my/index.vue | 167 + .../src/pages/user-card/my/setting.vue | 60 + im-uniapp-ui/src/static/contact-selected.png | Bin 0 -> 874 bytes im-uniapp-ui/src/static/contact.png | Bin 0 -> 883 bytes .../src/static/conversation-selected.png | Bin 0 -> 1216 bytes im-uniapp-ui/src/static/conversation.png | Bin 0 -> 1226 bytes {vue3 => im-uniapp-ui}/src/static/empty.png | Bin im-uniapp-ui/src/static/logo.png | Bin 0 -> 2922 bytes im-uniapp-ui/src/static/me-selected.png | Bin 0 -> 826 bytes im-uniapp-ui/src/static/me.png | Bin 0 -> 844 bytes im-uniapp-ui/src/static/welcome-bottom.png | Bin 0 -> 3282 bytes im-uniapp-ui/src/static/welcome.png | Bin 0 -> 24208 bytes {vue3 => im-uniapp-ui}/src/uni.scss | 0 .../src/uni_modules/uni-link/changelog.md | 30 + .../uni-link/components/uni-link/uni-link.vue | 128 + .../src/uni_modules/uni-link/package.json | 89 + .../src/uni_modules/uni-link/readme.md | 10 + .../src/uni_modules/uni-popup/changelog.md | 121 + .../components/uni-popup-dialog/keypress.js | 49 + .../uni-popup-dialog/uni-popup-dialog.vue | 275 + .../uni-popup-message/uni-popup-message.vue | 143 + .../uni-popup-share/uni-popup-share.vue | 187 + .../components/uni-popup/i18n/en.json | 7 + .../components/uni-popup/i18n/index.js | 8 + .../components/uni-popup/i18n/zh-Hans.json | 7 + .../components/uni-popup/i18n/zh-Hant.json | 7 + .../components/uni-popup/keypress.js | 49 + .../uni-popup/components/uni-popup/popup.js | 23 + .../components/uni-popup/uni-popup.vue | 473 + .../src/uni_modules/uni-popup/package.json | 87 + .../src/uni_modules/uni-popup/readme.md | 11 + .../src/uni_modules/uni-scss/changelog.md | 15 + .../src/uni_modules/uni-scss/index.scss | 1 + .../src/uni_modules/uni-scss/package.json | 82 + .../src/uni_modules/uni-scss/readme.md | 5 + .../uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 + .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 + .../uni-scss/styles/tools/functions.scss | 19 + .../src/uni_modules/uni-scss/theme.scss | 31 + .../src/uni_modules/uni-scss/variables.scss | 62 + .../uni_modules/uni-transition/changelog.md | 37 + .../uni-transition/createAnimation.js | 153 + .../uni-transition/uni-transition.vue | 286 + .../uni_modules/uni-transition/package.json | 86 + .../src/uni_modules/uni-transition/readme.md | 10 + .../src/uni_modules/zb-tooltip/changelog.md | 47 + .../components/zb-tooltip/zb-tooltip.vue | 0 .../src/uni_modules/zb-tooltip/package.json | 82 + .../src/uni_modules/zb-tooltip/readme.md | 31 + im-uniapp-ui/src/utils/constants.ts | 72 + im-uniapp-ui/src/utils/customNavigate.ts | 17 + im-uniapp-ui/src/utils/date.ts | 58 + im-uniapp-ui/src/utils/emoji.ts | 89 + im-uniapp-ui/src/utils/encodeText.ts | 26 + im-uniapp-ui/src/utils/friend.ts | 79 + im-uniapp-ui/src/utils/i18n.ts | 15 + im-uniapp-ui/src/utils/index.ts | 55 + im-uniapp-ui/src/utils/matrix.ts | 16 + im-uniapp-ui/src/utils/msg.ts | 117 + im-uniapp-ui/src/utils/parseText.ts | 101 + im-uniapp-ui/src/utils/permission.ts | 25 + im-uniapp-ui/src/utils/reporter.ts | 19 + im-uniapp-ui/src/utils/transformVue.ts | 12 + {vue3 => im-uniapp-ui}/tsconfig.json | 0 {vue3 => im-uniapp-ui}/vite.config.ts | 0 im-uniapp-ui/yarn.lock | 6934 ++++ vue2/App.vue | 98 - vue2/utils/reporter.ts | 15 - vue3/README.md | 370 - vue3/src/App.vue | 98 - vue3/src/components/Appellation.vue | 36 - vue3/src/components/Avatar.vue | 145 - vue3/src/components/Badge.vue | 57 - vue3/src/components/Empty.vue | 39 - vue3/src/components/Icon.vue | 743 - vue3/src/manifest.json | 120 - vue3/src/pages/Chat/forward.vue | 177 - vue3/src/pages/Chat/index.vue | 65 - .../Chat/message/mention-member-list.vue | 144 - .../Chat/message/message-forward-modal.vue | 115 - vue3/src/pages/Chat/message/message-item.vue | 210 - vue3/src/pages/Chat/message/message-list.vue | 272 - vue3/src/pages/Chat/message/message-reply.vue | 114 - vue3/src/pages/Contact/contact-list/index.vue | 237 - .../Conversation/conversation-list/index.vue | 262 - vue3/src/pages/Conversation/index.vue | 21 - vue3/src/pages/Group/group-add/index.vue | 114 - .../src/pages/Login/components/form-input.vue | 87 - vue3/src/pages/Login/index.vue | 24 - vue3/src/utils/i18n.ts | 21 - vue3/src/utils/index.ts | 7 - vue3/src/utils/reporter.ts | 15 - vue3/src/utils/svgString.ts | 2 - 738 files changed, 46958 insertions(+), 20024 deletions(-) create mode 100644 NEUIKit/App.vue rename {vue2 => NEUIKit}/components/Appellation.vue (91%) rename {vue2 => NEUIKit}/components/Avatar.vue (89%) rename {vue2 => NEUIKit}/components/Badge.vue (94%) rename {vue2 => NEUIKit}/components/Empty.vue (92%) rename {vue2 => NEUIKit}/components/FormInput.vue (99%) rename {vue2 => NEUIKit}/components/FriendSelect.vue (98%) rename {vue2 => NEUIKit}/components/Icon.vue (99%) rename {vue2 => NEUIKit}/components/MessageOneLine.vue (96%) rename {vue2 => NEUIKit}/components/Modal.vue (99%) rename {vue2 => NEUIKit}/components/NavBar.vue (99%) rename {vue2 => NEUIKit}/components/NetworkAlert.vue (78%) rename {vue2 => NEUIKit}/components/UserCard.vue (86%) rename {vue2 => NEUIKit}/locale/en.json (75%) rename {vue2 => NEUIKit}/locale/en.ts (99%) rename {vue2 => NEUIKit}/locale/zh-Hans.json (72%) rename {vue2 => NEUIKit}/locale/zh-Hans.ts (99%) rename {vue2 => NEUIKit}/pages.json (99%) rename {vue2 => NEUIKit}/pages/Chat/forward.vue (95%) rename {vue2 => NEUIKit}/pages/Chat/index.vue (91%) rename {vue2 => NEUIKit}/pages/Chat/message/face.vue (96%) rename {vue2 => NEUIKit}/pages/Chat/message/index.vue (99%) rename {vue2 => NEUIKit}/pages/Chat/message/mention-member-list.vue (96%) rename {vue2 => NEUIKit}/pages/Chat/message/message-bubble.vue (90%) rename {vue2 => NEUIKit}/pages/Chat/message/message-file.vue (99%) rename {vue2 => NEUIKit}/pages/Chat/message/message-forward-modal.vue (100%) rename {vue2 => NEUIKit}/pages/Chat/message/message-input.vue (82%) rename {vue2 => NEUIKit}/pages/Chat/message/message-item.vue (99%) rename {vue2 => NEUIKit}/pages/Chat/message/message-list.vue (99%) rename {vue2 => NEUIKit}/pages/Chat/message/message-reply.vue (98%) rename {vue2 => NEUIKit}/pages/Chat/message/message-section.vue (100%) rename {vue2 => NEUIKit}/pages/Chat/message/message-text.vue (98%) rename {vue2 => NEUIKit}/pages/Chat/message/p2p-set.vue (100%) rename {vue2 => NEUIKit}/pages/Contact/contact-list/black-list.vue (90%) rename {vue2 => NEUIKit}/pages/Contact/contact-list/friend-list.vue (98%) rename {vue2 => NEUIKit}/pages/Contact/contact-list/group-list.vue (98%) rename {vue2 => NEUIKit}/pages/Contact/contact-list/index.vue (91%) rename {vue2 => NEUIKit}/pages/Contact/contact-list/valid-list.vue (79%) rename {vue2 => NEUIKit}/pages/Contact/index.vue (99%) rename {vue2 => NEUIKit}/pages/Conversation/conversation-list/conversation-item.vue (96%) rename {vue2 => NEUIKit}/pages/Conversation/conversation-list/index.vue (81%) rename {vue2 => NEUIKit}/pages/Conversation/index.vue (91%) rename {vue2 => NEUIKit}/pages/Friend/add-friend/index.vue (82%) rename {vue2 => NEUIKit}/pages/Group/group-add/index.vue (86%) rename {vue2 => NEUIKit}/pages/Group/group-create/index.vue (91%) rename {vue2 => NEUIKit}/pages/Group/group-member/index.vue (88%) rename {vue2 => NEUIKit}/pages/Group/group-set/group-info-edit.vue (92%) rename {vue2 => NEUIKit}/pages/Group/group-set/index.vue (93%) rename {vue2 => NEUIKit}/pages/Login/components/form-input.vue (100%) rename {vue2 => NEUIKit}/pages/Login/components/login-form.vue (99%) rename {vue2 => NEUIKit}/pages/Login/components/welcome.vue (91%) rename {vue3/src => NEUIKit}/pages/Login/i18n/zh-cn.ts (99%) rename {vue2 => NEUIKit}/pages/Login/index.vue (98%) rename {vue2 => NEUIKit}/pages/Login/static/welcome-bottom.png (100%) rename {vue2 => NEUIKit}/pages/Login/static/welcome.png (100%) create mode 100644 NEUIKit/pages/Login/utils/api.ts rename {vue2 => NEUIKit}/pages/index/index.vue (100%) rename {vue2 => NEUIKit}/pages/styles/common.scss (99%) rename {vue2 => NEUIKit}/pages/user-card/detail-item/index.vue (73%) rename {vue2 => NEUIKit}/pages/user-card/friend/index.vue (94%) rename {vue2 => NEUIKit}/pages/user-card/my-detail/index.vue (99%) rename {vue2 => NEUIKit}/pages/user-card/my/index.vue (99%) rename {vue2 => NEUIKit}/pages/user-card/my/setting.vue (99%) rename {vue2 => NEUIKit}/static/contact-selected.png (100%) rename {vue2 => NEUIKit}/static/contact.png (100%) rename {vue2 => NEUIKit}/static/conversation-selected.png (100%) rename {vue2 => NEUIKit}/static/conversation.png (100%) rename {vue2 => NEUIKit}/static/empty.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-Excel.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-More.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-PPT.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-RAR1.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-Word.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-1.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-10.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-11.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-12.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-13.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-14.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-15.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-16.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-17.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-18.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-19.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-2.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-20.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-21.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-22.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-23.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-24.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-25.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-26.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-27.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-28.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-29.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-3.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-30.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-31.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-32.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-33.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-34.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-35.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-36.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-37.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-38.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-39.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-4.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-40.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-41.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-42.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-43.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-44.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-45.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-46.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-47.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-48.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-49.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-5.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-50.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-51.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-52.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-53.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-54.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-55.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-56.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-57.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-58.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-59.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-6.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-60.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-61.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-62.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-63.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-64.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-65.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-66.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-67.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-68.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-7.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-70.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-8.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-9.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-Frame7.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-a-Frame8.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-addition.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-biaoqing.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-chehui.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-chuangjianqunzu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-computed.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-erfenzhiyiyidu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-fasong.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-fuzhi1.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-guanbi.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-guanyu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-huifu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-im-xuanzhong.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-im.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-jiantou.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-jiaruqunzu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-kefu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-lahei.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-lahei2.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-lishixiaoxi.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-qita.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-quxiaoxiaoximiandarao.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-quxiaozhiding.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-shanchu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-shandiao.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-shezhi.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-shezhi1.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-shipin.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-shipin8.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-shipinyuyin.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-sifenzhisanyidu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-sifenzhiyiyidu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-sousuo.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-team.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-team2.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tianjiaanniu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tianjiahaoyou.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tongxunlu-weixuanzhong.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tongxunlu-xuanzhong.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-touxiang1.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-touxiang2.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-touxiang3.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-touxiang4.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-touxiang5.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tuichudenglu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tuigejian.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tupian.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tupian1.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-tupian2.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-weidu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-weizhiwenjian.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-wenjian.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-xiaoximiandarao.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-xiaoxizhiding.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-yanzheng.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-yidu.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-yinle.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-yuyin1.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-yuyin2.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-yuyin3.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-yuyin8.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-zhankai.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-zhongyingwen.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-zhuanfa.png (100%) rename {vue2 => NEUIKit}/static/icons/icon-zuojiantou.png (100%) rename {vue2 => NEUIKit}/static/logo.png (100%) rename {vue2 => NEUIKit}/static/me-selected.png (100%) rename {vue2 => NEUIKit}/static/me.png (100%) rename {vue2 => NEUIKit}/static/welcome-bottom.png (100%) rename {vue2 => NEUIKit}/static/welcome.png (100%) rename {vue2 => NEUIKit}/uni.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-link/changelog.md (100%) rename {vue2 => NEUIKit}/uni_modules/uni-link/components/uni-link/uni-link.vue (100%) rename {vue2 => NEUIKit}/uni_modules/uni-link/package.json (100%) rename {vue2 => NEUIKit}/uni_modules/uni-link/readme.md (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/changelog.md (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup/i18n/en.json (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup/i18n/index.js (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup/keypress.js (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup/popup.js (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/components/uni-popup/uni-popup.vue (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/package.json (100%) rename {vue2 => NEUIKit}/uni_modules/uni-popup/readme.md (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/changelog.md (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/index.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/package.json (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/readme.md (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/index.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/setting/_border.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/setting/_color.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/setting/_radius.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/setting/_space.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/setting/_styles.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/setting/_text.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/setting/_variables.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/styles/tools/functions.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/theme.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-scss/variables.scss (100%) rename {vue2 => NEUIKit}/uni_modules/uni-transition/changelog.md (100%) rename {vue2 => NEUIKit}/uni_modules/uni-transition/components/uni-transition/createAnimation.js (100%) rename {vue2 => NEUIKit}/uni_modules/uni-transition/components/uni-transition/uni-transition.vue (100%) rename {vue2 => NEUIKit}/uni_modules/uni-transition/package.json (100%) rename {vue2 => NEUIKit}/uni_modules/uni-transition/readme.md (100%) rename {vue2 => NEUIKit}/uni_modules/zb-tooltip/changelog.md (100%) rename {vue2 => NEUIKit}/uni_modules/zb-tooltip/components/zb-tooltip/zb-tooltip.vue (100%) rename {vue2 => NEUIKit}/uni_modules/zb-tooltip/package.json (100%) rename {vue2 => NEUIKit}/uni_modules/zb-tooltip/readme.md (100%) rename {vue2 => NEUIKit}/utils/constants.ts (100%) rename {vue2 => NEUIKit}/utils/customNavigate.ts (100%) rename {vue2 => NEUIKit}/utils/date.ts (100%) rename {vue2 => NEUIKit}/utils/emoji.ts (100%) rename {vue2 => NEUIKit}/utils/encodeText.ts (100%) rename {vue2 => NEUIKit}/utils/friend.ts (100%) rename {vue2 => NEUIKit}/utils/i18n.ts (100%) rename {vue2 => NEUIKit}/utils/index.ts (97%) rename {vue2 => NEUIKit}/utils/matrix.ts (100%) rename {vue2 => NEUIKit}/utils/msg.ts (96%) rename {vue2 => NEUIKit}/utils/parseText.ts (100%) rename {vue2 => NEUIKit}/utils/permission.ts (100%) create mode 100644 NEUIKit/utils/reporter.ts rename {vue2 => NEUIKit}/utils/transformVue.ts (92%) create mode 100644 im-uniapp-ui-vue2/.hbuilderx/launch.json create mode 100644 im-uniapp-ui-vue2/App.vue create mode 100644 im-uniapp-ui-vue2/components/Appellation.vue create mode 100644 im-uniapp-ui-vue2/components/Avatar.vue create mode 100644 im-uniapp-ui-vue2/components/Badge.vue create mode 100644 im-uniapp-ui-vue2/components/Empty.vue rename {vue3/src => im-uniapp-ui-vue2}/components/FormInput.vue (59%) rename {vue3/src => im-uniapp-ui-vue2}/components/FriendSelect.vue (77%) create mode 100644 im-uniapp-ui-vue2/components/Icon.vue rename {vue3/src => im-uniapp-ui-vue2}/components/MessageOneLine.vue (88%) rename {vue3/src => im-uniapp-ui-vue2}/components/Modal.vue (80%) rename {vue3/src => im-uniapp-ui-vue2}/components/NavBar.vue (53%) rename {vue3/src => im-uniapp-ui-vue2}/components/NetworkAlert.vue (75%) rename {vue3/src => im-uniapp-ui-vue2}/components/UserCard.vue (80%) rename {vue2 => im-uniapp-ui-vue2}/env.d.ts (100%) rename {vue2 => im-uniapp-ui-vue2}/index.html (100%) rename {vue3/src => im-uniapp-ui-vue2}/locale/en.json (75%) rename {vue3/src => im-uniapp-ui-vue2}/locale/en.ts (98%) rename {vue3/src => im-uniapp-ui-vue2}/locale/zh-Hans.json (72%) rename {vue3/src => im-uniapp-ui-vue2}/locale/zh-Hans.ts (97%) rename {vue2 => im-uniapp-ui-vue2}/main.js (100%) rename {vue2 => im-uniapp-ui-vue2}/manifest.json (97%) rename {vue2 => im-uniapp-ui-vue2}/package-lock.json (70%) rename {vue2 => im-uniapp-ui-vue2}/package.json (87%) rename {vue3/src => im-uniapp-ui-vue2}/pages.json (97%) create mode 100644 im-uniapp-ui-vue2/pages/Chat/forward.vue create mode 100644 im-uniapp-ui-vue2/pages/Chat/index.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/face.vue (72%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/index.vue (53%) create mode 100644 im-uniapp-ui-vue2/pages/Chat/message/mention-member-list.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/message-bubble.vue (66%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/message-file.vue (62%) create mode 100644 im-uniapp-ui-vue2/pages/Chat/message/message-forward-modal.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/message-input.vue (50%) create mode 100644 im-uniapp-ui-vue2/pages/Chat/message/message-item.vue create mode 100644 im-uniapp-ui-vue2/pages/Chat/message/message-list.vue create mode 100644 im-uniapp-ui-vue2/pages/Chat/message/message-reply.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/message-section.vue (74%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/message-text.vue (83%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Chat/message/p2p-set.vue (64%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Contact/contact-list/black-list.vue (73%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Contact/contact-list/friend-list.vue (80%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Contact/contact-list/group-list.vue (79%) create mode 100644 im-uniapp-ui-vue2/pages/Contact/contact-list/index.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Contact/contact-list/valid-list.vue (58%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Contact/index.vue (94%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Conversation/conversation-list/conversation-item.vue (69%) create mode 100644 im-uniapp-ui-vue2/pages/Conversation/conversation-list/index.vue create mode 100644 im-uniapp-ui-vue2/pages/Conversation/index.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Friend/add-friend/index.vue (58%) create mode 100644 im-uniapp-ui-vue2/pages/Group/group-add/index.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Group/group-create/index.vue (71%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Group/group-member/index.vue (54%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Group/group-set/group-info-edit.vue (79%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Group/group-set/index.vue (56%) create mode 100644 im-uniapp-ui-vue2/pages/Login/components/form-input.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Login/components/login-form.vue (69%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Login/components/welcome.vue (51%) rename {vue2 => im-uniapp-ui-vue2}/pages/Login/i18n/zh-cn.ts (99%) create mode 100644 im-uniapp-ui-vue2/pages/Login/index.vue rename {vue3/src => im-uniapp-ui-vue2}/pages/Login/static/welcome-bottom.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/pages/Login/static/welcome.png (100%) rename {vue2 => im-uniapp-ui-vue2}/pages/Login/utils/api.ts (96%) rename {vue3/src => im-uniapp-ui-vue2}/pages/index/index.vue (100%) rename {vue3/src => im-uniapp-ui-vue2}/pages/styles/common.scss (99%) rename {vue3/src => im-uniapp-ui-vue2}/pages/user-card/detail-item/index.vue (60%) rename {vue3/src => im-uniapp-ui-vue2}/pages/user-card/friend/index.vue (57%) rename {vue3/src => im-uniapp-ui-vue2}/pages/user-card/my-detail/index.vue (68%) rename {vue3/src => im-uniapp-ui-vue2}/pages/user-card/my/index.vue (65%) rename {vue3/src => im-uniapp-ui-vue2}/pages/user-card/my/setting.vue (94%) rename {vue3/src => im-uniapp-ui-vue2}/static/contact-selected.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/static/contact.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/static/conversation-selected.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/static/conversation.png (100%) create mode 100644 im-uniapp-ui-vue2/static/empty.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-Excel.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-More.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-PPT.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-RAR1.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-Word.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-1.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-10.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-11.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-12.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-13.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-14.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-15.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-16.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-17.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-18.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-19.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-2.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-20.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-21.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-22.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-23.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-24.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-25.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-26.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-27.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-28.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-29.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-3.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-30.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-31.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-32.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-33.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-34.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-35.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-36.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-37.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-38.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-39.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-4.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-40.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-41.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-42.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-43.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-44.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-45.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-46.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-47.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-48.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-49.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-5.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-50.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-51.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-52.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-53.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-54.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-55.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-56.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-57.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-58.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-59.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-6.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-60.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-61.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-62.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-63.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-64.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-65.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-66.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-67.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-68.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-7.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-70.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-8.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-9.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-Frame7.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-a-Frame8.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-addition.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-biaoqing.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-chehui.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-chuangjianqunzu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-computed.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-erfenzhiyiyidu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-fasong.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-fuzhi1.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-guanbi.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-guanyu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-huifu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-im-xuanzhong.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-im.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-jiantou.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-jiaruqunzu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-kefu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-lahei.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-lahei2.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-lishixiaoxi.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-qita.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-quxiaoxiaoximiandarao.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-quxiaozhiding.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-shanchu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-shandiao.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-shezhi.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-shezhi1.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-shipin.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-shipin8.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-shipinyuyin.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-sifenzhisanyidu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-sifenzhiyiyidu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-sousuo.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-team.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-team2.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tianjiaanniu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tianjiahaoyou.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tongxunlu-weixuanzhong.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tongxunlu-xuanzhong.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-touxiang1.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-touxiang2.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-touxiang3.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-touxiang4.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-touxiang5.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tuichudenglu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tuigejian.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tupian.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tupian1.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-tupian2.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-weidu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-weizhiwenjian.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-wenjian.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-xiaoximiandarao.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-xiaoxizhiding.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-yanzheng.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-yidu.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-yinle.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-yuyin1.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-yuyin2.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-yuyin3.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-yuyin8.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-zhankai.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-zhongyingwen.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-zhuanfa.png create mode 100644 im-uniapp-ui-vue2/static/icons/icon-zuojiantou.png rename {vue3/src => im-uniapp-ui-vue2}/static/logo.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/static/me-selected.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/static/me.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/static/welcome-bottom.png (100%) rename {vue3/src => im-uniapp-ui-vue2}/static/welcome.png (100%) rename {vue2 => im-uniapp-ui-vue2}/tsconfig.json (100%) rename {vue2 => im-uniapp-ui-vue2}/uni.promisify.adaptor.js (100%) create mode 100644 im-uniapp-ui-vue2/uni.scss rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-link/changelog.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-link/components/uni-link/uni-link.vue (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-link/package.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-link/readme.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/changelog.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup/i18n/en.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup/i18n/index.js (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup/keypress.js (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup/popup.js (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/components/uni-popup/uni-popup.vue (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/package.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-popup/readme.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/changelog.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/index.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/package.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/readme.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/index.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/setting/_border.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/setting/_color.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/setting/_radius.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/setting/_space.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/setting/_styles.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/setting/_text.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/setting/_variables.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/styles/tools/functions.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/theme.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-scss/variables.scss (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-transition/changelog.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-transition/components/uni-transition/createAnimation.js (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-transition/components/uni-transition/uni-transition.vue (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-transition/package.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/uni-transition/readme.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/zb-tooltip/changelog.md (100%) create mode 100644 im-uniapp-ui-vue2/uni_modules/zb-tooltip/components/zb-tooltip/zb-tooltip.vue rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/zb-tooltip/package.json (100%) rename {vue3/src => im-uniapp-ui-vue2}/uni_modules/zb-tooltip/readme.md (100%) rename {vue3/src => im-uniapp-ui-vue2}/utils/constants.ts (66%) rename {vue3/src => im-uniapp-ui-vue2}/utils/customNavigate.ts (99%) rename {vue3/src => im-uniapp-ui-vue2}/utils/date.ts (100%) rename {vue3/src => im-uniapp-ui-vue2}/utils/emoji.ts (100%) rename {vue3/src => im-uniapp-ui-vue2}/utils/encodeText.ts (100%) rename {vue3/src => im-uniapp-ui-vue2}/utils/friend.ts (100%) create mode 100644 im-uniapp-ui-vue2/utils/i18n.ts create mode 100644 im-uniapp-ui-vue2/utils/index.ts rename {vue3/src => im-uniapp-ui-vue2}/utils/matrix.ts (100%) rename {vue3/src => im-uniapp-ui-vue2}/utils/msg.ts (96%) rename {vue3/src => im-uniapp-ui-vue2}/utils/parseText.ts (100%) rename {vue3/src => im-uniapp-ui-vue2}/utils/permission.ts (100%) create mode 100644 im-uniapp-ui-vue2/utils/reporter.ts rename {vue2 => im-uniapp-ui-vue2}/utils/svgString.ts (100%) create mode 100644 im-uniapp-ui-vue2/utils/transformVue.ts rename {vue2 => im-uniapp-ui-vue2}/vue.config.js (100%) create mode 100644 im-uniapp-ui-vue2/yarn.lock create mode 100644 im-uniapp-ui/.gitignore rename {vue3 => im-uniapp-ui}/CHANGELOG.md (100%) create mode 100644 im-uniapp-ui/README.md rename {vue3 => im-uniapp-ui}/iconfont.json (100%) rename {vue3 => im-uniapp-ui}/index.html (100%) create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/android/MiPush_SDK_Client_5_1_0-C_3rd.aar create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/android/assets/agconnect-services.json create mode 100755 im-uniapp-ui/nativeplugins/NIMUniPlugin/android/com.heytap.msp_3.1.0.aar create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/android/nim-uni-plugin.aar create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/android/vivo_pushSDK_v3.0.0.4_484.aar create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/ios/NIMUniPlugin.framework/Info.plist create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/ios/NIMUniPlugin.framework/NIMUniPlugin create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/ios/NIMUniPlugin.framework/_CodeSignature/CodeDirectory create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/ios/NIMUniPlugin.framework/_CodeSignature/CodeRequirements create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/ios/NIMUniPlugin.framework/_CodeSignature/CodeRequirements-1 create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/ios/NIMUniPlugin.framework/_CodeSignature/CodeResources create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/ios/NIMUniPlugin.framework/_CodeSignature/CodeSignature create mode 100644 im-uniapp-ui/nativeplugins/NIMUniPlugin/package.json rename {vue3 => im-uniapp-ui}/package-lock.json (50%) rename {vue3 => im-uniapp-ui}/package.json (64%) create mode 100644 im-uniapp-ui/src/App.vue create mode 100644 im-uniapp-ui/src/README.md create mode 100644 im-uniapp-ui/src/components/Appellation.vue create mode 100644 im-uniapp-ui/src/components/Avatar.vue create mode 100644 im-uniapp-ui/src/components/Badge.vue create mode 100644 im-uniapp-ui/src/components/Empty.vue create mode 100644 im-uniapp-ui/src/components/FormInput.vue create mode 100644 im-uniapp-ui/src/components/FriendSelect.vue create mode 100644 im-uniapp-ui/src/components/Icon.vue create mode 100644 im-uniapp-ui/src/components/MessageOneLine.vue create mode 100644 im-uniapp-ui/src/components/Modal.vue create mode 100644 im-uniapp-ui/src/components/NavBar.vue create mode 100644 im-uniapp-ui/src/components/NetworkAlert.vue create mode 100644 im-uniapp-ui/src/components/UserCard.vue rename {vue3 => im-uniapp-ui}/src/env.d.ts (100%) create mode 100644 im-uniapp-ui/src/locale/en.json create mode 100644 im-uniapp-ui/src/locale/en.ts create mode 100644 im-uniapp-ui/src/locale/zh-Hans.json create mode 100644 im-uniapp-ui/src/locale/zh-Hans.ts rename {vue3 => im-uniapp-ui}/src/main.ts (75%) create mode 100644 im-uniapp-ui/src/manifest.json create mode 100644 im-uniapp-ui/src/pages.json create mode 100644 im-uniapp-ui/src/pages/Chat/forward.vue create mode 100644 im-uniapp-ui/src/pages/Chat/index.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/face.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/index.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/mention-member-list.vue rename {vue3 => im-uniapp-ui}/src/pages/Chat/message/message-avatar.vue (100%) create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-bubble.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-file.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-forward-modal.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-input.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-item.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-list.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-reply.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-section.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/message-text.vue create mode 100644 im-uniapp-ui/src/pages/Chat/message/p2p-set.vue create mode 100644 im-uniapp-ui/src/pages/Contact/contact-list/black-list.vue create mode 100644 im-uniapp-ui/src/pages/Contact/contact-list/friend-list.vue create mode 100644 im-uniapp-ui/src/pages/Contact/contact-list/group-list.vue create mode 100644 im-uniapp-ui/src/pages/Contact/contact-list/index.vue create mode 100644 im-uniapp-ui/src/pages/Contact/contact-list/valid-list.vue create mode 100644 im-uniapp-ui/src/pages/Contact/index.vue create mode 100644 im-uniapp-ui/src/pages/Conversation/conversation-list/conversation-item.vue create mode 100644 im-uniapp-ui/src/pages/Conversation/conversation-list/index.vue create mode 100644 im-uniapp-ui/src/pages/Conversation/index.vue create mode 100644 im-uniapp-ui/src/pages/Friend/add-friend/index.vue create mode 100644 im-uniapp-ui/src/pages/Group/group-add/index.vue create mode 100644 im-uniapp-ui/src/pages/Group/group-create/index.vue create mode 100644 im-uniapp-ui/src/pages/Group/group-member/index.vue create mode 100644 im-uniapp-ui/src/pages/Group/group-set/group-info-edit.vue create mode 100644 im-uniapp-ui/src/pages/Group/group-set/index.vue create mode 100644 im-uniapp-ui/src/pages/Login/components/form-input.vue create mode 100644 im-uniapp-ui/src/pages/Login/components/login-form.vue create mode 100644 im-uniapp-ui/src/pages/Login/components/welcome.vue create mode 100644 im-uniapp-ui/src/pages/Login/i18n/zh-cn.ts create mode 100644 im-uniapp-ui/src/pages/Login/index.vue create mode 100644 im-uniapp-ui/src/pages/Login/static/welcome-bottom.png create mode 100644 im-uniapp-ui/src/pages/Login/static/welcome.png rename {vue3 => im-uniapp-ui}/src/pages/Login/utils/api.ts (85%) create mode 100644 im-uniapp-ui/src/pages/index/index.vue create mode 100644 im-uniapp-ui/src/pages/styles/common.scss create mode 100644 im-uniapp-ui/src/pages/user-card/detail-item/index.vue create mode 100644 im-uniapp-ui/src/pages/user-card/friend/index.vue create mode 100644 im-uniapp-ui/src/pages/user-card/my-detail/index.vue create mode 100644 im-uniapp-ui/src/pages/user-card/my/index.vue create mode 100644 im-uniapp-ui/src/pages/user-card/my/setting.vue create mode 100644 im-uniapp-ui/src/static/contact-selected.png create mode 100644 im-uniapp-ui/src/static/contact.png create mode 100644 im-uniapp-ui/src/static/conversation-selected.png create mode 100644 im-uniapp-ui/src/static/conversation.png rename {vue3 => im-uniapp-ui}/src/static/empty.png (100%) create mode 100644 im-uniapp-ui/src/static/logo.png create mode 100644 im-uniapp-ui/src/static/me-selected.png create mode 100644 im-uniapp-ui/src/static/me.png create mode 100644 im-uniapp-ui/src/static/welcome-bottom.png create mode 100644 im-uniapp-ui/src/static/welcome.png rename {vue3 => im-uniapp-ui}/src/uni.scss (100%) create mode 100644 im-uniapp-ui/src/uni_modules/uni-link/changelog.md create mode 100644 im-uniapp-ui/src/uni_modules/uni-link/components/uni-link/uni-link.vue create mode 100644 im-uniapp-ui/src/uni_modules/uni-link/package.json create mode 100644 im-uniapp-ui/src/uni_modules/uni-link/readme.md create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/changelog.md create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup/i18n/en.json create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup/i18n/index.js create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup/keypress.js create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup/popup.js create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/components/uni-popup/uni-popup.vue create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/package.json create mode 100644 im-uniapp-ui/src/uni_modules/uni-popup/readme.md create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/changelog.md create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/index.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/package.json create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/readme.md create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/index.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/theme.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-scss/variables.scss create mode 100644 im-uniapp-ui/src/uni_modules/uni-transition/changelog.md create mode 100644 im-uniapp-ui/src/uni_modules/uni-transition/components/uni-transition/createAnimation.js create mode 100644 im-uniapp-ui/src/uni_modules/uni-transition/components/uni-transition/uni-transition.vue create mode 100644 im-uniapp-ui/src/uni_modules/uni-transition/package.json create mode 100644 im-uniapp-ui/src/uni_modules/uni-transition/readme.md create mode 100644 im-uniapp-ui/src/uni_modules/zb-tooltip/changelog.md rename {vue3 => im-uniapp-ui}/src/uni_modules/zb-tooltip/components/zb-tooltip/zb-tooltip.vue (100%) create mode 100644 im-uniapp-ui/src/uni_modules/zb-tooltip/package.json create mode 100644 im-uniapp-ui/src/uni_modules/zb-tooltip/readme.md create mode 100644 im-uniapp-ui/src/utils/constants.ts create mode 100644 im-uniapp-ui/src/utils/customNavigate.ts create mode 100644 im-uniapp-ui/src/utils/date.ts create mode 100644 im-uniapp-ui/src/utils/emoji.ts create mode 100644 im-uniapp-ui/src/utils/encodeText.ts create mode 100644 im-uniapp-ui/src/utils/friend.ts create mode 100644 im-uniapp-ui/src/utils/i18n.ts create mode 100644 im-uniapp-ui/src/utils/index.ts create mode 100644 im-uniapp-ui/src/utils/matrix.ts create mode 100644 im-uniapp-ui/src/utils/msg.ts create mode 100644 im-uniapp-ui/src/utils/parseText.ts create mode 100644 im-uniapp-ui/src/utils/permission.ts create mode 100644 im-uniapp-ui/src/utils/reporter.ts create mode 100644 im-uniapp-ui/src/utils/transformVue.ts rename {vue3 => im-uniapp-ui}/tsconfig.json (100%) rename {vue3 => im-uniapp-ui}/vite.config.ts (100%) create mode 100644 im-uniapp-ui/yarn.lock delete mode 100644 vue2/App.vue delete mode 100644 vue2/utils/reporter.ts delete mode 100644 vue3/README.md delete mode 100644 vue3/src/App.vue delete mode 100644 vue3/src/components/Appellation.vue delete mode 100644 vue3/src/components/Avatar.vue delete mode 100644 vue3/src/components/Badge.vue delete mode 100644 vue3/src/components/Empty.vue delete mode 100644 vue3/src/components/Icon.vue delete mode 100644 vue3/src/manifest.json delete mode 100644 vue3/src/pages/Chat/forward.vue delete mode 100644 vue3/src/pages/Chat/index.vue delete mode 100644 vue3/src/pages/Chat/message/mention-member-list.vue delete mode 100644 vue3/src/pages/Chat/message/message-forward-modal.vue delete mode 100644 vue3/src/pages/Chat/message/message-item.vue delete mode 100644 vue3/src/pages/Chat/message/message-list.vue delete mode 100644 vue3/src/pages/Chat/message/message-reply.vue delete mode 100644 vue3/src/pages/Contact/contact-list/index.vue delete mode 100644 vue3/src/pages/Conversation/conversation-list/index.vue delete mode 100644 vue3/src/pages/Conversation/index.vue delete mode 100644 vue3/src/pages/Group/group-add/index.vue delete mode 100644 vue3/src/pages/Login/components/form-input.vue delete mode 100644 vue3/src/pages/Login/index.vue delete mode 100644 vue3/src/utils/i18n.ts delete mode 100644 vue3/src/utils/index.ts delete mode 100644 vue3/src/utils/reporter.ts delete mode 100644 vue3/src/utils/svgString.ts diff --git a/NEUIKit/App.vue b/NEUIKit/App.vue new file mode 100644 index 0000000..d244798 --- /dev/null +++ b/NEUIKit/App.vue @@ -0,0 +1,153 @@ + + + diff --git a/vue2/components/Appellation.vue b/NEUIKit/components/Appellation.vue similarity index 91% rename from vue2/components/Appellation.vue rename to NEUIKit/components/Appellation.vue index 4f7d0b0..9116262 100644 --- a/vue2/components/Appellation.vue +++ b/NEUIKit/components/Appellation.vue @@ -37,7 +37,8 @@ const { account, teamId, ignoreAlias, nickFromMsg } = defineProps({ }) autorun(() => { - appellation.value = deepClone(uni.$UIKitStore.uiStore.getAppellation({ + // @ts-ignore + appellation.value = deepClone(uni.$UIKitStore?.uiStore?.getAppellation({ account, teamId, ignoreAlias, diff --git a/vue2/components/Avatar.vue b/NEUIKit/components/Avatar.vue similarity index 89% rename from vue2/components/Avatar.vue rename to NEUIKit/components/Avatar.vue index ce57763..bead1f1 100644 --- a/vue2/components/Avatar.vue +++ b/NEUIKit/components/Avatar.vue @@ -67,6 +67,7 @@ const avatarSize = props.size || 42 const user = ref() let isLongPress = false // uniapp 长按事件也会触发点击事件,此时需要处理 const appellation = computed(() => { + // @ts-ignore return uni.$UIKitStore.uiStore.getAppellation({ account: props.account, teamId: props.teamId, @@ -75,13 +76,15 @@ const appellation = computed(() => { }).slice(0,2) }) autorun(async () => { - const data = await uni.$UIKitStore.userStore.getUserActive(props.account) + // @ts-ignore + const data = await uni.$UIKitStore?.userStore?.getUserActive(props.account) user.value = deepClone(data) }) const avatarUrl = computed(() => { - user.value = deepClone(uni.$UIKitStore.userStore.users.get(props.account)) + // @ts-ignore + user.value = deepClone(uni.$UIKitStore?.userStore?.users?.get(props.account)) return props.avatar || user.value?.avatar }) @@ -105,7 +108,8 @@ if (!color) { const handleAvatarClick = () => { if (props.gotoUserCard && !isLongPress) { if (props.isRedirect) { - if (props.account === uni.$UIKitStore.userStore.myUserInfo.account) { + // @ts-ignore + if (props.account === uni.$UIKitStore?.userStore?.myUserInfo.account) { customRedirectTo({ url: `/pages/user-card/my-detail/index`, }) @@ -115,7 +119,8 @@ const handleAvatarClick = () => { }) } } else { - if (props.account === uni.$UIKitStore.userStore.myUserInfo.account) { + // @ts-ignore + if (props.account === uni.$UIKitStore?.userStore?.myUserInfo.account) { customNavigateTo({ url: `/pages/user-card/my-detail/index`, }) diff --git a/vue2/components/Badge.vue b/NEUIKit/components/Badge.vue similarity index 94% rename from vue2/components/Badge.vue rename to NEUIKit/components/Badge.vue index 5cf09c0..43c8b9a 100644 --- a/vue2/components/Badge.vue +++ b/NEUIKit/components/Badge.vue @@ -7,7 +7,7 @@ diff --git a/vue2/pages/Chat/message/message-file.vue b/NEUIKit/pages/Chat/message/message-file.vue similarity index 99% rename from vue2/pages/Chat/message/message-file.vue rename to NEUIKit/pages/Chat/message/message-file.vue index d8b448b..abc5a12 100644 --- a/vue2/pages/Chat/message/message-file.vue +++ b/NEUIKit/pages/Chat/message/message-file.vue @@ -31,7 +31,7 @@ import UniLink from '../../../uni_modules/uni-link/components/uni-link/uni-link. import { getUniPlatform } from '../../../utils'; const props = defineProps({ msg: { - type: Object, + type: Object, required: true } }) diff --git a/vue2/pages/Chat/message/message-forward-modal.vue b/NEUIKit/pages/Chat/message/message-forward-modal.vue similarity index 100% rename from vue2/pages/Chat/message/message-forward-modal.vue rename to NEUIKit/pages/Chat/message/message-forward-modal.vue diff --git a/vue2/pages/Chat/message/message-input.vue b/NEUIKit/pages/Chat/message/message-input.vue similarity index 82% rename from vue2/pages/Chat/message/message-input.vue rename to NEUIKit/pages/Chat/message/message-input.vue index ba8ae26..9c8ab4e 100644 --- a/vue2/pages/Chat/message/message-input.vue +++ b/NEUIKit/pages/Chat/message/message-input.vue @@ -2,8 +2,8 @@
-
- +
+
{{ t('replyText') }}
@@ -11,12 +11,8 @@
- + +
:
@@ -25,28 +21,21 @@
-
- -
-
+
+ +
+
- + +
- +
-
- +
+
@@ -55,42 +44,19 @@
{{ inputText }}
{{ placeholder }}
- + +
+
+
-
- -
- - + +
@@ -115,19 +81,19 @@ import { autorun } from 'mobx'; import Appellation from '../../../components/Appellation.vue'; type MentionedMember = { account: string; appellation: string } const props = defineProps({ - scene: { - type: String, // Assuming TMsgScene is a custom object type - required: true - }, - to: { - type: String, - required: true - }, - replyMsgsMap: { - type: Object, - default: undefined - } - }) + scene: { + type: String, // Assuming TMsgScene is a custom object type + required: true + }, + to: { + type: String, + required: true + }, + replyMsgsMap: { + type: Object, + default: undefined + } +}) const inputText = ref('') const extVisible = ref(false) const emojiVisible = ref(false) @@ -149,14 +115,14 @@ const replyMsg = ref({ sessionId: '' }) // @消息相关 -const ctx = getCurrentInstance(); +const ctx = getCurrentInstance(); const popupRef = ref(null) const selectedAtMembers = ref([]) // 群禁言 const isTeamMute = ref(false) const placeholder = computed(() => { - return isTeamMute.value ? t('teamMutePlaceholder'): t('chatInputPlaceHolder'); + return isTeamMute.value ? t('teamMutePlaceholder') : t('chatInputPlaceHolder'); }); const onPopupChange = (e: any) => { @@ -205,7 +171,7 @@ const handleInputBlur = () => { uni.$emit(events.ON_INPUT_FOCUS_CHANGE, false) } -const handleInput = (event: any) => { +const handleInput = (event: any) => { const text = event?.detail?.value; const isAit = text.endsWith("@") || text.endsWith("@\n") if (props.scene == 'team') { @@ -221,7 +187,7 @@ const handleInput = (event: any) => { const handleSendTextMsg = () => { if (inputText.value.trim() === '') return - const ext = onAtMembersExtHandler() + const ext = onAtMembersExtHandler() uni.$UIKitStore.msgStore.sendTextMsgActive({ scene: props.scene as TMsgScene, to: props.to, @@ -229,9 +195,9 @@ const handleSendTextMsg = () => { ext: selectedAtMembers.value.length && ext }).then(() => { if (extVisible.value) { - emojiVisible.value = false - extVisible.value = false - uni.hideKeyboard() + emojiVisible.value = false + extVisible.value = false + uni.hideKeyboard() } }) inputText.value = '' @@ -347,7 +313,7 @@ onMounted(() => { // 如果重新编辑的是@消息,则需要将被@的成员重新加入selectedAtMembers if (msg.ext) { const extObj = JSON.parse(msg.ext) - const yxAitMsg = extObj.yxAitMsg + const yxAitMsg = extObj.yxAitMsg if (yxAitMsg) { const _mentionedMembers: MentionedMember[] = [] Object.keys(yxAitMsg).forEach((key) => { @@ -355,7 +321,7 @@ onMounted(() => { _mentionedMembers.push({ account: key, appellation: '所有人' - }) + }) } else { _mentionedMembers.push({ account: key, @@ -364,10 +330,10 @@ onMounted(() => { teamId: props.to, ignoreAlias: true }) - }) + }) } }) - selectedAtMembers.value = _mentionedMembers + selectedAtMembers.value = _mentionedMembers } } inputText.value = msg?.attach?.oldBody @@ -418,7 +384,7 @@ onMounted(() => { uni.$on(events.EMOJI_DELETE, () => { handleEmojiDelete() }) - + // 表情发送 uni.$on(events.EMOJI_SEND, () => { emojiVisible.value = false @@ -426,19 +392,21 @@ onMounted(() => { handleSendTextMsg() }) - uni.onKeyboardHeightChange((res) => { - const isAndroidApp = uni.getSystemInfoSync().platform == 'android' && uniPlatform == 'app' - const isAndroidWxapp = uni.getSystemInfoSync().platform == 'android' && uniPlatform == 'mp-weixin' - // 此处是为了点击安卓键盘上的收起按钮时,表情面板需要隐藏 - if ((res.height === 0 && isAndroidApp) || (res.height === 0 && isAndroidWxapp)) { - emojiVisible.value = false - extVisible.value = false - } - }) + if (uni.onKeyboardHeightChange) { + uni.onKeyboardHeightChange((res) => { + const isAndroidApp = uni.getSystemInfoSync().platform == 'android' && uniPlatform == 'app' + const isAndroidWxapp = uni.getSystemInfoSync().platform == 'android' && uniPlatform == 'mp-weixin' + // 此处是为了点击安卓键盘上的收起按钮时,表情面板需要隐藏 + if ((res.height === 0 && isAndroidApp) || (res.height === 0 && isAndroidWxapp)) { + emojiVisible.value = false + extVisible.value = false + } + }) + } }) const onAtMembersExtHandler = () => { - let ext:any + let ext: any if (selectedAtMembers.value.length) { selectedAtMembers.value .forEach((member) => { @@ -495,7 +463,7 @@ autorun(() => { } else { isTeamMute.value = team?.mute } - }else{ + } else { isTeamMute.value = false } } @@ -568,7 +536,8 @@ onUnmounted(() => { width: 20px; height: 20px; margin-top: 4px; - .loading{ + + .loading { width: 100%; height: 100%; } @@ -592,7 +561,7 @@ onUnmounted(() => { align-items: center; color: #929299; - .reply-noFind{ + .reply-noFind { width: fit-content; } @@ -603,7 +572,7 @@ onUnmounted(() => { align-items: center; } - .reply-message{ + .reply-message { display: flex; align-items: center; flex-basis: 100%; @@ -618,7 +587,7 @@ onUnmounted(() => { margin-right: 5px; } - .reply-to{ + .reply-to { flex-basis: content; overflow: hidden; text-overflow: ellipsis; @@ -627,7 +596,7 @@ onUnmounted(() => { } } -.input-emoji{ +.input-emoji { background-color: #fff; height: 40px; line-height: 40px; @@ -636,11 +605,11 @@ onUnmounted(() => { border-radius: 6px; } -.input-text{ +.input-text { white-space: nowrap; } -.input-placeholder{ +.input-placeholder { background-color: #fff; height: 40px; line-height: 40px; diff --git a/vue2/pages/Chat/message/message-item.vue b/NEUIKit/pages/Chat/message/message-item.vue similarity index 99% rename from vue2/pages/Chat/message/message-item.vue rename to NEUIKit/pages/Chat/message/message-item.vue index 4564c62..836be8c 100644 --- a/vue2/pages/Chat/message/message-item.vue +++ b/NEUIKit/pages/Chat/message/message-item.vue @@ -183,7 +183,7 @@ import ReplyMessage from './message-reply.vue' import { autorun } from 'mobx' import { deepClone } from '../../../utils' import { t } from '../../../utils/i18n' -import { IMMessage } from '@xkit-yx/im-store' +import type { IMMessage } from '@xkit-yx/im-store' const props = defineProps({ scene: { type: String, // Assuming TMsgScene is a custom object type @@ -214,7 +214,7 @@ const props = defineProps({ required: true, }, replyMsg: { - type: Object, + type: Object, default: () => ({ idClient: undefined, body: undefined, @@ -235,7 +235,7 @@ const isSelf = ref(false) autorun(() => { isSelf.value = props.msg.from === uni.$UIKitStore.userStore.myUserInfo.account -}) +}) diff --git a/vue2/pages/Chat/message/message-list.vue b/NEUIKit/pages/Chat/message/message-list.vue similarity index 99% rename from vue2/pages/Chat/message/message-list.vue rename to NEUIKit/pages/Chat/message/message-list.vue index 8ba0b57..d746183 100644 --- a/vue2/pages/Chat/message/message-list.vue +++ b/NEUIKit/pages/Chat/message/message-list.vue @@ -1,12 +1,12 @@ - -``` - -```sh -# 在main.ts 中引入国际化 -import i18n from './pages/NEUIKit/src/utils/i18n' -export function createApp() { - const app = createSSRApp(App) - app.use(i18n) - return { - app, - } -} -``` - -#### 步骤 5:配置 pages 路由 - -在 pages/NEUIKit/src/utils/customNavigate.ts 中,修改 preUrl - -```javascript -const preUrl = '/pages/NEUIKit/src' -``` - -在 你的项目的 pages.json 文件中的更新 pages 路由: - -```javascript - { - "pages": [ - { - "path": "pages/NEUIKit/src/pages/Conversation/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Login/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Chat/message/p2p-set", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Group/group-set/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Group/group-set/group-info-edit", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Contact/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Contact/contact-list/group-list", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Contact/contact-list/valid-list", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Contact/contact-list/black-list", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Chat/index", - "style": { - "navigationBarBackgroundColor": "#F6F8FA", - "navigationBarTextStyle": "black", - "enablePullDownRefresh": true, - "app-plus": { - "softinputMode": "adjustResize", - "softinputNavBar": "none" - } - } - }, - - { - "path": "pages/NEUIKit/src/pages/Group/group-member/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Group/group-create/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Group/group-add/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Friend/add-friend/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/user-card/friend/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/user-card/my/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/user-card/my/setting", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/user-card/my-detail/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/user-card/detail-item/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/NEUIKit/src/pages/Chat/forward", - "style": { - "navigationStyle": "custom" - } - } - ], - "globalStyle": { - "navigationBarTextStyle": "black" - }, - "tabBar": { - "backgroundColor": "#F6F8FA", - "color": "#999999", - "selectedColor": "#337EFF", - "height": "60px", - "list": [ - { - "text": "消息", - "iconPath": "static/YX_IMG/conversation.png", - "selectedIconPath": "static/YX_IMG/conversation-selected.png", - "pagePath": "pages/NEUIKit/src/pages/Conversation/index" - }, - { - "text": "通讯录", - "iconPath": "static/YX_IMG/contact.png", - "selectedIconPath": "static/YX_IMG/contact-selected.png", - "pagePath": "pages/NEUIKit/src/pages/Contact/index" - }, - { - "text": "我的", - "pagePath": "pages/NEUIKit/src/pages/user-card/my/index", - "iconPath": "static/YX_IMG/me.png", - "selectedIconPath": "static/YX_IMG/me-selected.png" - } - ] - } -} - - -``` - -#### 步骤 6:运行效果 - -Andriod:
- - - -iOS:
- - -## 目录结构详解 - -``` -. -├── components // 组件 -│ ├── Avatar.vue // 头像 -│ ├── Empty.vue // 空白页 -│ ├── FormInput.vue // 表单 -│ ├── FriendSelect.vue // 好友选择 -│ ├── Icon.vue // Icon 图标 -│ ├── NavBar.vue // 标题栏 -│ ├── NetworkAlert.vue // 网络横幅 -│ ├── Svg.vue // Icon 图标的 SVG,需要使用 iconfont 的模块必须要引入此组件 -│ └── UserCard.vue // 用户卡片 -├── env.d.ts -├── locale // 国际化文案配置 -│ ├── en.json -│ ├── en.ts -│ ├── zh-Hans.json -│ └── zh-Hans.ts -├── pages -│ ├── Chat // 聊天页 -│ │ ├── index.vue -│ │ └── message -│ │ ├── face.vue // 表情选择 -│ │ ├── index.vue -│ │ ├── message-bubble.vue // 消息气泡 -│ │ ├── message-file.vue // 文件消息 -│ │ ├── message-input.vue // 消息输入框 -│ │ ├── message-item.vue // 单条消息 -│ │ ├── message-list.vue // 消息列表 -│ ├── Contact // 通讯录页 -│ │ ├── contact-list -│ │ │ ├── friend-list.vue // 好友列表 -│ │ │ ├── group-list.vue // 群组列表 -│ │ │ └── index.vue -│ │ └── index.vue -│ ├── Conversation // 会话页 -│ │ ├── conversation-list // 会话列表 -│ │ │ ├── conversation-item.vue // 单条会话 -│ │ │ └── index.vue -│ │ ├── conversation-start // 发起聊天 -│ │ │ └── index.vue -│ │ └── index.vue -│ ├── Group -│ │ ├── group-add // 群聊拉人页 -│ │ │ └── index.vue -│ │ ├── group-create // 创建群聊页 -│ │ │ └── index.vue -│ │ ├── group-member // 群成员页 -│ │ │ └── index.vue -│ │ └── group-set // 群设置页 -│ │ ├── group-info-edit.vue -│ │ └── index.vue -│ ├── Login // 云信登录页,请替换成自己的登录页或者删除 -│ │ ├── components -│ │ │ ├── form-input.vue -│ │ │ ├── login-form.vue -│ │ │ └── welcome.vue -│ │ ├── i18n -│ │ │ └── zh-cn.ts -│ │ ├── index.vue -│ │ ├── static -│ │ │ ├── welcome-bottom.png -│ │ │ └── welcome.png -│ │ └── utils -│ │ └── api.ts -│ ├── index -│ │ └── index.vue // 空白首页 -│ ├── styles -│ │ └── common.scss // 公共样式 -│ └── user-card -│ ├── detail-item // 个人信息编辑页 -│ │ └── index.vue -│ ├── friend // 好友卡片页 -│ │ └── index.vue -│ ├── my // 我的页面 -│ │ ├── index.vue -│ │ └── setting.vue -│ └── my-detail // 我的详情页 -│ └── index.vue -├── pages.json // 需要在根目录项目下添加这里的配置 -├── static // 静态图片资源 -│ ├── contact-selected.png -│ ├── contact.png -│ ├── conversation-selected.png -│ ├── conversation.png -│ ├── empty.png -│ ├── logo.png -│ ├── me-selected.png -│ ├── me.png -│ ├── welcome-bottom.png -│ └── welcome.png -├── uni.scss // uni 自带的样式,可以忽略或者使用项目中已有的 -├── uni_modules // NEUIKit 用到的三方库(对比应用市场下载的有改动) -│ ├── uni-link -│ │ ├── changelog.md -│ │ ├── components -│ │ │ └── uni-link -│ │ │ └── uni-link.vue -│ │ ├── package.json -│ │ └── readme.md -│ ├── uni-scss -│ │ ├── changelog.md -│ │ ├── index.scss -│ │ ├── package.json -│ │ ├── readme.md -│ │ ├── styles -│ │ │ ├── index.scss -│ │ │ ├── setting -│ │ │ │ ├── _border.scss -│ │ │ │ ├── _color.scss -│ │ │ │ ├── _radius.scss -│ │ │ │ ├── _space.scss -│ │ │ │ ├── _styles.scss -│ │ │ │ ├── _text.scss -│ │ │ │ └── _variables.scss -│ │ │ └── tools -│ │ │ └── functions.scss -│ │ ├── theme.scss -│ │ └── variables.scss -│ └── zb-tooltip -│ ├── changelog.md -│ ├── components -│ │ └── zb-tooltip -│ │ └── zb-tooltip.vue -│ ├── package.json -│ └── readme.md -└── utils // 工具函数 - ├── constants.ts // 一些常量 - ├── date.ts // 时间处理 - ├── emoji.ts // 表情相关 - ├── encodeText.ts // 文本编码,防 xss - ├── friend.ts // 好友相关 - ├── i18n.ts // 国际化相关 - ├── matrix.ts // 数组转矩阵 - ├── msg.ts // 消息相关 - ├── permission.ts // 设备权限相关 - ├── reporter.ts // 埋点上报 - ├── parseText.ts // 文本消息解析 - └── svgString.ts // iconfont Symbol 的 js 内容,注意从 symbol 标签开始替换,不要从 svg 标签开始替换 -``` - -## 常见问题 - -- 相册拒绝授权后再次开启授权,由于 uniapp api 兼容问题,部分 Android 机型无法正常打开相册,需要用户自行处理 -- 如何替换您自己的 iconfont - - 1. 进入到你的 iconfont 项目中,找到 symbol 的 js,点击打开 js - ![https://yx-web-nosdn.netease.im/common/cf17e1bea265ae60bebd7b57b5f6d5a8/WechatIMG209.png](https://yx-web-nosdn.netease.im/common/cf17e1bea265ae60bebd7b57b5f6d5a8/WechatIMG209.png) - - 2. 找到 symbol 标签,将内容 copy 下来,替换到 utils/svgString.ts 中相应的位置上 - ![https://yx-web-nosdn.netease.im/common/5317df9885b852fbcdc4bfafd9f4b5f9/WechatIMG210.png](https://yx-web-nosdn.netease.im/common/5317df9885b852fbcdc4bfafd9f4b5f9/WechatIMG210.png) - ![https://yx-web-nosdn.netease.im/common/8248e72516ce6c4adb6f253d58a129d5/WechatIMG211.png](https://yx-web-nosdn.netease.im/common/8248e72516ce6c4adb6f253d58a129d5/WechatIMG211.png) - - 3. 引用 components/Icon 组件,填入 type 即可,例如 `` -- 如果 iOS 低版本构建后无法运行,需要在构建出的资源 dist/build/app/app-service.js 文件最前面添加 `var globalThis = Function('return this')();` diff --git a/im-uniapp-ui-vue2/.hbuilderx/launch.json b/im-uniapp-ui-vue2/.hbuilderx/launch.json new file mode 100644 index 0000000..4016dc0 --- /dev/null +++ b/im-uniapp-ui-vue2/.hbuilderx/launch.json @@ -0,0 +1,23 @@ +{ + // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version" : "0.0", + "configurations" : [ + { + "app-plus" : { + "launchtype" : "local" + }, + "default" : { + "launchtype" : "local" + }, + "mp-weixin" : { + "launchtype" : "local" + }, + "type" : "uniCloud" + }, + { + "playground" : "standard", + "type" : "uni-app:app-ios" + } + ] +} diff --git a/im-uniapp-ui-vue2/App.vue b/im-uniapp-ui-vue2/App.vue new file mode 100644 index 0000000..d244798 --- /dev/null +++ b/im-uniapp-ui-vue2/App.vue @@ -0,0 +1,153 @@ + + + diff --git a/im-uniapp-ui-vue2/components/Appellation.vue b/im-uniapp-ui-vue2/components/Appellation.vue new file mode 100644 index 0000000..9116262 --- /dev/null +++ b/im-uniapp-ui-vue2/components/Appellation.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/im-uniapp-ui-vue2/components/Avatar.vue b/im-uniapp-ui-vue2/components/Avatar.vue new file mode 100644 index 0000000..bead1f1 --- /dev/null +++ b/im-uniapp-ui-vue2/components/Avatar.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/im-uniapp-ui-vue2/components/Badge.vue b/im-uniapp-ui-vue2/components/Badge.vue new file mode 100644 index 0000000..43c8b9a --- /dev/null +++ b/im-uniapp-ui-vue2/components/Badge.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/im-uniapp-ui-vue2/components/Empty.vue b/im-uniapp-ui-vue2/components/Empty.vue new file mode 100644 index 0000000..7991ade --- /dev/null +++ b/im-uniapp-ui-vue2/components/Empty.vue @@ -0,0 +1,37 @@ + + + + diff --git a/vue3/src/components/FormInput.vue b/im-uniapp-ui-vue2/components/FormInput.vue similarity index 59% rename from vue3/src/components/FormInput.vue rename to im-uniapp-ui-vue2/components/FormInput.vue index ccc7c2c..4addf72 100644 --- a/vue3/src/components/FormInput.vue +++ b/im-uniapp-ui-vue2/components/FormInput.vue @@ -1,32 +1,56 @@ diff --git a/vue3/src/components/MessageOneLine.vue b/im-uniapp-ui-vue2/components/MessageOneLine.vue similarity index 88% rename from vue3/src/components/MessageOneLine.vue rename to im-uniapp-ui-vue2/components/MessageOneLine.vue index 7bb32bf..8d546db 100644 --- a/vue3/src/components/MessageOneLine.vue +++ b/im-uniapp-ui-vue2/components/MessageOneLine.vue @@ -1,6 +1,7 @@ diff --git a/vue3/src/components/NavBar.vue b/im-uniapp-ui-vue2/components/NavBar.vue similarity index 53% rename from vue3/src/components/NavBar.vue rename to im-uniapp-ui-vue2/components/NavBar.vue index 9b186ce..3f80cee 100644 --- a/vue3/src/components/NavBar.vue +++ b/im-uniapp-ui-vue2/components/NavBar.vue @@ -1,30 +1,45 @@ + + diff --git a/im-uniapp-ui-vue2/pages/Chat/index.vue b/im-uniapp-ui-vue2/pages/Chat/index.vue new file mode 100644 index 0000000..cac2061 --- /dev/null +++ b/im-uniapp-ui-vue2/pages/Chat/index.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/vue3/src/pages/Chat/message/face.vue b/im-uniapp-ui-vue2/pages/Chat/message/face.vue similarity index 72% rename from vue3/src/pages/Chat/message/face.vue rename to im-uniapp-ui-vue2/pages/Chat/message/face.vue index 4d4f6a9..265af56 100644 --- a/vue3/src/pages/Chat/message/face.vue +++ b/im-uniapp-ui-vue2/pages/Chat/message/face.vue @@ -2,8 +2,13 @@
- +
+ +
@@ -14,30 +19,39 @@
-
+
-
{{ $t('sendText') }}
+
{{ t('sendText') }}
diff --git a/im-uniapp-ui-vue2/pages/Chat/message/mention-member-list.vue b/im-uniapp-ui-vue2/pages/Chat/message/mention-member-list.vue new file mode 100644 index 0000000..33f1312 --- /dev/null +++ b/im-uniapp-ui-vue2/pages/Chat/message/mention-member-list.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/vue3/src/pages/Chat/message/message-bubble.vue b/im-uniapp-ui-vue2/pages/Chat/message/message-bubble.vue similarity index 66% rename from vue3/src/pages/Chat/message/message-bubble.vue rename to im-uniapp-ui-vue2/pages/Chat/message/message-bubble.vue index 093920e..eaf3596 100644 --- a/vue3/src/pages/Chat/message/message-bubble.vue +++ b/im-uniapp-ui-vue2/pages/Chat/message/message-bubble.vue @@ -4,26 +4,26 @@
- {{ $t('copyText') }} + {{ t('copyText') }}
- {{ $t('deleteText') }} + {{ t('deleteText') }}
- {{ $t('forwardText') }} + {{ t('forwardText') }}
- {{ $t('replyText') }} + {{ t('replyText') }}
- {{ $t('deleteText') }} + {{ t('deleteText') }}
@@ -39,11 +39,11 @@
- {{ $t('copyText') }} + {{ t('copyText') }}
- {{ $t('deleteText') }} + {{ t('deleteText') }}
@@ -54,33 +54,35 @@
-
- - - -
- -
- -
-
+ + +
- {{ $t('sendFailWithInBlackText') }} + {{ t('sendFailWithInBlackText') }}
- {{ $t('sendFailWithDeleteText') }} - {{ $t('friendVerificationText') }} + {{ t('sendFailWithDeleteText') }} + {{ t('friendVerificationText') }}
@@ -88,30 +90,30 @@
- {{ $t('copyText') }} + {{ t('copyText') }}
-
+
- {{ $t('recallText') }} + {{ t('recallText') }}
- {{ $t('deleteText') }} + {{ t('deleteText') }}
- {{ $t('forwardText') }} + {{ t('forwardText') }}
- {{ $t('replyText') }} + {{ t('replyText') }}
- {{ $t('deleteText') }} + {{ t('deleteText') }}
@@ -123,31 +125,60 @@
- +
+ +
diff --git a/vue3/src/pages/Chat/message/message-input.vue b/im-uniapp-ui-vue2/pages/Chat/message/message-input.vue similarity index 50% rename from vue3/src/pages/Chat/message/message-input.vue rename to im-uniapp-ui-vue2/pages/Chat/message/message-input.vue index 7a7aa77..9c8ab4e 100644 --- a/vue3/src/pages/Chat/message/message-input.vue +++ b/im-uniapp-ui-vue2/pages/Chat/message/message-input.vue @@ -1,81 +1,71 @@ @@ -502,8 +523,6 @@ onUnmounted(() => { padding: 12px 20px 2px 20px; display: flex; flex-direction: row; - // justify-content: space-between; - // align-items: flex-start; } .msg-input-button { @@ -513,15 +532,27 @@ onUnmounted(() => { &.msg-input-loading { animation: loadingCircle 1s infinite linear; + z-index: 1; + width: 20px; + height: 20px; + margin-top: 4px; + + .loading { + width: 100%; + height: 100%; + } } } .msg-ext { - height: 300px; overflow-y: auto; + width: 100%; + height: 300px; + background-color: #eff1f3; + z-index: 1; } -.reply-message { +.reply-message-wrapper { display: flex; font-size: 13px; background-color: #EFF1F2; @@ -530,20 +561,61 @@ onUnmounted(() => { align-items: center; color: #929299; + .reply-noFind { + width: fit-content; + } + .reply-message-close { flex-basis: 14px; margin-left: 10px; + display: flex; + align-items: center; + } + + .reply-message { + display: flex; + align-items: center; + flex-basis: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .reply-title { - flex-basis: 28px; + flex-basis: 30px; + white-space: nowrap; + margin-right: 5px; } - .reply-to{ + .reply-to { flex-basis: content; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + font-size: 13px; } } + +.input-emoji { + background-color: #fff; + height: 40px; + line-height: 40px; + font-size: 16px; + padding: 0 12px; + border-radius: 6px; +} + +.input-text { + white-space: nowrap; +} + +.input-placeholder { + background-color: #fff; + height: 40px; + line-height: 40px; + font-size: 16px; + padding: 0 12px; + border-radius: 6px; + color: gray; +} diff --git a/im-uniapp-ui-vue2/pages/Chat/message/message-item.vue b/im-uniapp-ui-vue2/pages/Chat/message/message-item.vue new file mode 100644 index 0000000..836be8c --- /dev/null +++ b/im-uniapp-ui-vue2/pages/Chat/message/message-item.vue @@ -0,0 +1,333 @@ + + + + + diff --git a/im-uniapp-ui-vue2/pages/Chat/message/message-list.vue b/im-uniapp-ui-vue2/pages/Chat/message/message-list.vue new file mode 100644 index 0000000..d746183 --- /dev/null +++ b/im-uniapp-ui-vue2/pages/Chat/message/message-list.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/im-uniapp-ui-vue2/pages/Chat/message/message-reply.vue b/im-uniapp-ui-vue2/pages/Chat/message/message-reply.vue new file mode 100644 index 0000000..d72a2e3 --- /dev/null +++ b/im-uniapp-ui-vue2/pages/Chat/message/message-reply.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/vue3/src/pages/Chat/message/message-section.vue b/im-uniapp-ui-vue2/pages/Chat/message/message-section.vue similarity index 74% rename from vue3/src/pages/Chat/message/message-section.vue rename to im-uniapp-ui-vue2/pages/Chat/message/message-section.vue index 51907c5..2a956ad 100644 --- a/vue3/src/pages/Chat/message/message-section.vue +++ b/im-uniapp-ui-vue2/pages/Chat/message/message-section.vue @@ -13,17 +13,33 @@ import type { IMMessage, TMsgScene, } from 'nim-web-sdk-ng/dist/NIM_MINIAPP_SDK/MsgServiceInterface' -import { defineProps, computed } from 'vue' +import { computed } from '../../../utils/transformVue'; + import { MSG_ID_FLAG } from '../../../utils/constants' import { caculateTimeago } from '../../../utils/date'; -const props = defineProps<{ - msgs: IMMessage[] - scene: TMsgScene - to: string - start: number - end: number -}>() +const props = defineProps({ + msgs: { + type: Array, + required: true + }, + scene: { + type: Object, // Assuming TMsgScene is a custom object type + required: true + }, + to: { + type: String, + required: true + }, + start: { + type: Number, + required: true + }, + end: { + type: Number, + required: true + } + }) const sliceMsgs = computed(() => { const res: IMMessage[] = [] diff --git a/vue3/src/pages/Chat/message/message-text.vue b/im-uniapp-ui-vue2/pages/Chat/message/message-text.vue similarity index 83% rename from vue3/src/pages/Chat/message/message-text.vue rename to im-uniapp-ui-vue2/pages/Chat/message/message-text.vue index 8089264..2b68504 100644 --- a/vue3/src/pages/Chat/message/message-text.vue +++ b/im-uniapp-ui-vue2/pages/Chat/message/message-text.vue @@ -29,16 +29,26 @@
- diff --git a/vue3/src/pages/Chat/message/p2p-set.vue b/im-uniapp-ui-vue2/pages/Chat/message/p2p-set.vue similarity index 64% rename from vue3/src/pages/Chat/message/p2p-set.vue rename to im-uniapp-ui-vue2/pages/Chat/message/p2p-set.vue index aa13b3d..2a79a7c 100644 --- a/vue3/src/pages/Chat/message/p2p-set.vue +++ b/im-uniapp-ui-vue2/pages/Chat/message/p2p-set.vue @@ -1,26 +1,27 @@