├── .DS_Store
├── .gitignore
├── Ice-chat-uniapp
├── .hbuilderx
│ └── launch.json
├── App.vue
├── changelog.md
├── common
│ ├── common.js
│ ├── common.scss
│ ├── config.js
│ ├── db.js
│ ├── func.js
│ ├── iscroll.js
│ ├── poster.js
│ ├── request.js
│ └── store.js
├── components
│ ├── a-loading.vue
│ ├── expression
│ │ └── expression.css
│ ├── iconfont
│ │ └── iconfont.css
│ ├── number-keyboard
│ │ └── number-keyboard.vue
│ ├── password-input
│ │ └── password-input.vue
│ ├── use-action-sheet
│ │ └── use-action-sheet.vue
│ ├── use-address
│ │ ├── city-data
│ │ │ ├── area.js
│ │ │ ├── city.js
│ │ │ └── province.js
│ │ └── use-address.vue
│ ├── use-copyright
│ │ └── use-copyright.vue
│ ├── use-count-down
│ │ └── use-count-down.vue
│ ├── use-empty
│ │ └── use-empty.vue
│ ├── use-header
│ │ └── use-header.vue
│ ├── use-list-title
│ │ └── use-list-title.vue
│ ├── use-loadmore
│ │ └── use-loadmore.vue
│ ├── use-login
│ │ └── use-login.vue
│ ├── use-mask
│ │ └── use-mask.vue
│ ├── use-number-box
│ │ └── use-number-box.vue
│ ├── use-pickeraddr
│ │ ├── data.js
│ │ └── use-pickeraddr.vue
│ ├── use-popup
│ │ └── use-popup.vue
│ ├── use-qrcode
│ │ ├── qrcode.js
│ │ └── use-qrcode.vue
│ ├── use-rate
│ │ └── use-rate.vue
│ ├── use-stepper
│ │ └── use-stepper.vue
│ ├── use-totop
│ │ └── use-totop.vue
│ ├── use-upload
│ │ └── use-upload.vue
│ └── yt-txl
│ │ ├── index.vue
│ │ └── pinyin.js
├── favicon.ico
├── main.js
├── manifest.json
├── package.json
├── pages.json
├── pages
│ ├── chat
│ │ ├── chat.vue
│ │ ├── groupchat.vue
│ │ ├── home.vue
│ │ ├── newgroup.vue
│ │ ├── order.vue
│ │ ├── payment.vue
│ │ ├── product.vue
│ │ ├── signal.vue
│ │ └── user.vue
│ ├── content
│ │ ├── rich-text.vue
│ │ └── web.vue
│ ├── engineer
│ │ └── list.vue
│ ├── login
│ │ ├── login-guide.vue
│ │ └── login.vue
│ ├── search
│ │ ├── apply.vue
│ │ ├── friend-add.vue
│ │ ├── search-result.vue
│ │ ├── search.vue
│ │ └── searchall.vue
│ └── user
│ │ ├── assist
│ │ ├── assist.vue
│ │ └── coupon.vue
│ │ ├── collect
│ │ └── collect.vue
│ │ ├── friend
│ │ └── list.vue
│ │ ├── order
│ │ ├── order-detail.vue
│ │ └── order.vue
│ │ ├── personal.vue
│ │ ├── profit
│ │ ├── cashout.vue
│ │ └── profit.vue
│ │ ├── setting
│ │ └── setting.vue
│ │ └── user.vue
├── readme.md
├── static
│ ├── .DS_Store
│ ├── hm-friends-requests-card
│ │ └── images
│ │ │ ├── img_24029_0_0.png
│ │ │ ├── img_24029_0_1.png
│ │ │ ├── img_24029_0_2.png
│ │ │ ├── img_24029_0_3.png
│ │ │ ├── img_24029_0_4.png
│ │ │ └── img_24029_0_5.png
│ ├── images
│ │ ├── .DS_Store
│ │ ├── empty
│ │ │ ├── cart.jpg
│ │ │ ├── empty.jpg
│ │ │ ├── message.03a0abb5.png
│ │ │ └── search.jpg
│ │ ├── headimg
│ │ │ ├── face_12.jpg
│ │ │ ├── face_13.jpg
│ │ │ ├── face_2.jpg
│ │ │ ├── face_4.jpg
│ │ │ ├── face_5.jpg
│ │ │ └── face_6.jpg
│ │ ├── login-bg.png
│ │ ├── logo.png
│ │ ├── mescroll-progress.png
│ │ ├── mescroll-slogan.png
│ │ ├── pg-02.png
│ │ ├── tobar
│ │ │ ├── .DS_Store
│ │ │ ├── contact.png
│ │ │ ├── contact2.png
│ │ │ ├── message.png
│ │ │ ├── message2.png
│ │ │ ├── my.png
│ │ │ └── my2.png
│ │ └── user
│ │ │ ├── default.jpg
│ │ │ └── default.png
│ └── star.png
├── uni.scss
├── uniCloud-aliyun
│ └── database
│ │ ├── JQL数据库管理.jql
│ │ └── JQL查询.jql
├── uni_modules
│ ├── mescroll-uni
│ │ ├── changelog.md
│ │ ├── components
│ │ │ ├── mescroll-body
│ │ │ │ ├── mescroll-body.css
│ │ │ │ └── mescroll-body.vue
│ │ │ ├── mescroll-diy
│ │ │ │ ├── beibei
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── mescroll-down.css
│ │ │ │ │ │ └── mescroll-down.vue
│ │ │ │ │ ├── mescroll-body.vue
│ │ │ │ │ ├── mescroll-uni-option.js
│ │ │ │ │ └── mescroll-uni.vue
│ │ │ │ └── xinlang
│ │ │ │ │ ├── components
│ │ │ │ │ ├── mescroll-down.css
│ │ │ │ │ ├── mescroll-down.vue
│ │ │ │ │ ├── mescroll-up.css
│ │ │ │ │ └── mescroll-up.vue
│ │ │ │ │ ├── mescroll-body.vue
│ │ │ │ │ ├── mescroll-uni-option.js
│ │ │ │ │ └── mescroll-uni.vue
│ │ │ ├── mescroll-empty
│ │ │ │ └── mescroll-empty.vue
│ │ │ └── mescroll-uni
│ │ │ │ ├── components
│ │ │ │ ├── mescroll-down.css
│ │ │ │ ├── mescroll-down.vue
│ │ │ │ ├── mescroll-top.vue
│ │ │ │ ├── mescroll-up.css
│ │ │ │ └── mescroll-up.vue
│ │ │ │ ├── mescroll-i18n.js
│ │ │ │ ├── mescroll-mixins.js
│ │ │ │ ├── mescroll-uni-option.js
│ │ │ │ ├── mescroll-uni.css
│ │ │ │ ├── mescroll-uni.js
│ │ │ │ ├── mescroll-uni.vue
│ │ │ │ ├── mixins
│ │ │ │ ├── mescroll-comp.js
│ │ │ │ ├── mescroll-more-item.js
│ │ │ │ └── mescroll-more.js
│ │ │ │ └── wxs
│ │ │ │ ├── mixins.js
│ │ │ │ ├── renderjs.js
│ │ │ │ └── wxs.wxs
│ │ ├── package.json
│ │ └── readme.md
│ ├── uni-captcha
│ │ ├── changelog.md
│ │ ├── package.json
│ │ ├── readme.md
│ │ └── uniCloud
│ │ │ └── cloudfunctions
│ │ │ └── common
│ │ │ └── uni-captcha
│ │ │ ├── LICENSE.md
│ │ │ ├── index.js
│ │ │ └── package.json
│ ├── uni-config-center
│ │ ├── changelog.md
│ │ ├── package.json
│ │ ├── readme.md
│ │ └── uniCloud
│ │ │ └── cloudfunctions
│ │ │ └── common
│ │ │ └── uni-config-center
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── uni-id
│ │ │ └── config.json
│ ├── uni-id
│ │ ├── changelog.md
│ │ ├── package.json
│ │ ├── readme.md
│ │ └── uniCloud
│ │ │ └── cloudfunctions
│ │ │ └── common
│ │ │ └── uni-id
│ │ │ ├── LICENSE.md
│ │ │ ├── index.js
│ │ │ ├── package-lock.json
│ │ │ └── package.json
│ ├── uni-load-more
│ │ ├── changelog.md
│ │ ├── components
│ │ │ └── uni-load-more
│ │ │ │ └── uni-load-more.vue
│ │ ├── package.json
│ │ └── readme.md
│ ├── uni-popup
│ │ ├── changelog.md
│ │ ├── components
│ │ │ ├── uni-popup-share
│ │ │ │ └── uni-popup-share.vue
│ │ │ └── uni-popup
│ │ │ │ ├── keypress.js
│ │ │ │ ├── message.js
│ │ │ │ ├── popup.js
│ │ │ │ ├── share.js
│ │ │ │ └── uni-popup.vue
│ │ ├── package.json
│ │ └── readme.md
│ └── uni-transition
│ │ ├── changelog.md
│ │ ├── components
│ │ └── uni-transition
│ │ │ └── uni-transition.vue
│ │ ├── package.json
│ │ └── readme.md
├── unpackage
│ └── dist
│ │ └── build
│ │ ├── .automator
│ │ └── h5
│ │ │ └── .automator.json
│ │ └── h5
│ │ ├── index.html
│ │ └── static
│ │ ├── hm-friends-requests-card
│ │ └── images
│ │ │ ├── img_24029_0_0.png
│ │ │ ├── img_24029_0_1.png
│ │ │ ├── img_24029_0_2.png
│ │ │ ├── img_24029_0_3.png
│ │ │ ├── img_24029_0_4.png
│ │ │ └── img_24029_0_5.png
│ │ ├── images
│ │ ├── empty
│ │ │ ├── cart.jpg
│ │ │ ├── empty.jpg
│ │ │ ├── message.03a0abb5.png
│ │ │ └── search.jpg
│ │ ├── headimg
│ │ │ ├── face_12.jpg
│ │ │ ├── face_13.jpg
│ │ │ ├── face_2.jpg
│ │ │ ├── face_4.jpg
│ │ │ ├── face_5.jpg
│ │ │ └── face_6.jpg
│ │ ├── login-bg.png
│ │ ├── logo.png
│ │ ├── mescroll-progress.png
│ │ ├── mescroll-slogan.png
│ │ ├── pg-02.png
│ │ ├── tobar
│ │ │ ├── contact.png
│ │ │ ├── contact2.png
│ │ │ ├── message.png
│ │ │ ├── message2.png
│ │ │ ├── my.png
│ │ │ └── my2.png
│ │ └── user
│ │ │ ├── default.jpg
│ │ │ └── default.png
│ │ ├── img
│ │ ├── face_12.0bdad333.jpg
│ │ ├── mescroll-slogan.40aa47ed.png
│ │ ├── message.03a0abb5.5712d6eb.png
│ │ └── star.a7215108.png
│ │ ├── index.b0707a6a.css
│ │ ├── js
│ │ ├── chunk-vendors.e9107b99.js
│ │ ├── index.ccc4701c.js
│ │ ├── pages-chat-chat.bba82e24.js
│ │ ├── pages-chat-chat~pages-chat-groupchat~pages-chat-home~pages-user-setting-setting.2bbf43a9.js
│ │ ├── pages-chat-groupchat.0dd28dbb.js
│ │ ├── pages-chat-home.1f7fc635.js
│ │ ├── pages-chat-newgroup.2e0a0864.js
│ │ ├── pages-chat-order.efff320a.js
│ │ ├── pages-chat-payment.24084b2d.js
│ │ ├── pages-chat-product.387c2b1d.js
│ │ ├── pages-chat-signal.87de0e2a.js
│ │ ├── pages-chat-user.41fd10cc.js
│ │ ├── pages-content-rich-text.5bc790b0.js
│ │ ├── pages-content-web.1140cde4.js
│ │ ├── pages-engineer-list.67a431f9.js
│ │ ├── pages-login-login-guide.bd1c7d70.js
│ │ ├── pages-login-login.a011354a.js
│ │ ├── pages-search-apply.9e4a7014.js
│ │ ├── pages-search-friend-add.a7484405.js
│ │ ├── pages-search-search-result.00412cbd.js
│ │ ├── pages-search-search.6a1c5602.js
│ │ ├── pages-search-searchall.eb001551.js
│ │ ├── pages-user-assist-assist.6d2fa7d2.js
│ │ ├── pages-user-assist-coupon.8d9dfd12.js
│ │ ├── pages-user-collect-collect.91909847.js
│ │ ├── pages-user-friend-list.6bfa21d9.js
│ │ ├── pages-user-order-order-detail.a60b64db.js
│ │ ├── pages-user-order-order.25699cc8.js
│ │ ├── pages-user-personal.9fbbbf75.js
│ │ ├── pages-user-profit-cashout.4edddaee.js
│ │ ├── pages-user-profit-profit.de03d12d.js
│ │ ├── pages-user-setting-setting.5020cea7.js
│ │ └── pages-user-user.ba556d61.js
│ │ └── star.png
└── utils
│ └── date.js
├── LICENSE
├── README.md
├── identifier.sqlite
├── pom.xml
├── sqlite.log
├── src
├── .DS_Store
├── main
│ ├── .DS_Store
│ ├── java
│ │ └── com
│ │ │ └── ninespace
│ │ │ ├── .DS_Store
│ │ │ └── sqlite
│ │ │ ├── SpringDataSqliteApplication.java
│ │ │ ├── configuration
│ │ │ ├── CorsConfig.java
│ │ │ ├── Knife4jConfiguration.java
│ │ │ ├── RedisConfig.java
│ │ │ ├── WebSocketConfig.java
│ │ │ └── WebSocketServer.java
│ │ │ ├── controller
│ │ │ ├── FriendController.java
│ │ │ ├── GroupController.java
│ │ │ ├── MessageController.java
│ │ │ ├── TestController.java
│ │ │ └── UserController.java
│ │ │ ├── entity
│ │ │ ├── Friend.java
│ │ │ ├── Group.java
│ │ │ ├── OfflineMsg.java
│ │ │ └── User.java
│ │ │ ├── mapper
│ │ │ ├── FriendMapper.java
│ │ │ ├── GroupMapper.java
│ │ │ ├── OfflineMsgMapper.java
│ │ │ └── UserMapper.java
│ │ │ ├── service
│ │ │ ├── FriendService.java
│ │ │ ├── GroupService.java
│ │ │ ├── OfflineMsgService.java
│ │ │ ├── UserService.java
│ │ │ └── impl
│ │ │ │ ├── FriendServiceImpl.java
│ │ │ │ ├── GroupServiceImpl.java
│ │ │ │ ├── OfflineMsgServiceImpl.java
│ │ │ │ └── UserServiceImpl.java
│ │ │ ├── task
│ │ │ └── GetRedisData.java
│ │ │ ├── util
│ │ │ └── RedisUtil.java
│ │ │ └── vo
│ │ │ ├── Result.java
│ │ │ └── UserGroup.java
│ └── resources
│ │ ├── .DS_Store
│ │ ├── application.yml
│ │ ├── mapper
│ │ └── userMapper.xml
│ │ ├── sql
│ │ ├── data.sql
│ │ └── schema.sql
│ │ └── static
│ │ ├── .DS_Store
│ │ └── cloud.db
└── test
│ └── java
│ └── com
│ └── ninespace
│ └── sqlite
│ └── SpringDataSqliteApplicationTests.java
└── target
├── classes
├── application.yml
├── com
│ └── ninespace
│ │ └── sqlite
│ │ ├── SpringDataSqliteApplication.class
│ │ ├── configuration
│ │ ├── CorsConfig.class
│ │ ├── Knife4jConfiguration.class
│ │ ├── RedisConfig.class
│ │ ├── WebSocketConfig.class
│ │ └── WebSocketServer.class
│ │ ├── controller
│ │ ├── FriendController.class
│ │ ├── GroupController.class
│ │ ├── MessageController.class
│ │ └── UserController.class
│ │ ├── entity
│ │ ├── Friend.class
│ │ ├── Group.class
│ │ ├── OfflineMsg.class
│ │ └── User.class
│ │ ├── mapper
│ │ ├── FriendMapper.class
│ │ ├── GroupMapper.class
│ │ ├── OfflineMsgMapper.class
│ │ └── UserMapper.class
│ │ ├── service
│ │ ├── FriendService.class
│ │ ├── GroupService.class
│ │ ├── OfflineMsgService.class
│ │ ├── UserService.class
│ │ └── impl
│ │ │ ├── FriendServiceImpl.class
│ │ │ ├── GroupServiceImpl.class
│ │ │ ├── OfflineMsgServiceImpl.class
│ │ │ └── UserServiceImpl.class
│ │ ├── task
│ │ └── GetRedisData.class
│ │ ├── util
│ │ └── RedisUtil.class
│ │ └── vo
│ │ ├── Result.class
│ │ └── UserGroup.class
├── mapper
│ └── userMapper.xml
├── sql
│ ├── data.sql
│ └── schema.sql
└── static
│ └── cloud.db
├── maven-archiver
└── pom.properties
├── maven-status
└── maven-compiler-plugin
│ ├── compile
│ └── default-compile
│ │ ├── createdFiles.lst
│ │ └── inputFiles.lst
│ └── testCompile
│ └── default-testCompile
│ ├── createdFiles.lst
│ └── inputFiles.lst
├── sqlite-0.0.1-SNAPSHOT.jar
├── sqlite-0.0.1-SNAPSHOT.jar.original
└── test-classes
└── com
└── ninespace
└── sqlite
└── SpringDataSqliteApplicationTests.class
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 | .DS_Store
3 |
4 | # Mobile Tools for Java (J2ME)
5 | .mtj.tmp/
6 |
7 | # Package Files #
8 | *.jar
9 | *.war
10 | *.ear
11 |
12 | *.gz
13 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
14 | hs_err_pid*
15 |
16 | /target/
17 | ./target/
18 | .idea
19 | *.iml
20 | *.iws
21 |
22 | /IcePay-ment
23 | pom.xml
24 |
25 | .classpath
26 | .project
27 | .settings
28 | /Ice-chat/target/
29 |
30 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/.hbuilderx/launch.json:
--------------------------------------------------------------------------------
1 | { // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
2 | // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
3 | "version": "0.0",
4 | "configurations": [{
5 | "default" :
6 | {
7 | "launchtype" : "local"
8 | },
9 | "h5" :
10 | {
11 | "launchtype" : "local"
12 | },
13 | "type" : "uniCloud"
14 | }
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/changelog.md:
--------------------------------------------------------------------------------
1 | ## 1.0.2(2022-08-03)
2 | ##### 新增线上体验版。
3 |
4 | 【体验】步骤
5 | 【体验】1. 微信扫码授权登录 [https://usekf.use-cloud.com](https://usekf.use-cloud.com)(PC端客服系统,建议使用谷歌浏览器体验)
6 | 【体验】2. 微信搜索 [用云客服] 微信小程序,授权登录后点击联系客服(可选择PC端自己登录的客服进行体验)
7 |
8 | 【反馈】感谢
9 | 【反馈】1. 欢迎提出宝贵建议
10 | 【反馈】2. 相关bug 可统一收集整理后发给我们
11 |
12 | ###### 【咨询】加QQ群([1020565856](https://qm.qq.com/cgi-bin/qm/qr?k=BNUlrZAQXPolwALtcBm_rMabq0bx3_n-&jump_from=usecloud)) 技术咨询。
13 |
14 | ## 1.0.1(2021-07-09)
15 | ## 【添加】本插件采集的数据、发送的服务器地址、以及数据用途说明:
16 | 【计划】用云IM 使用的 websocket 采用 netcore + redis 技术实现,服务器将使用微信的云开发进行托管。
17 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/common/config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | let config = {
4 | debug: !0,
5 | version: '1.0.9',
6 |
7 | route: {
8 | home: '/pages/tabbar/home',
9 | login: '/pages/login/login',
10 | order: '/pages/user/order/order',
11 | pay: '/pages/pay/pay',
12 | search: '/pages/home/search/search',
13 | goods: '/pages/goods/goods',
14 | goodslist: '/pages/goods/goods-list'
15 | },
16 | provider: '',
17 | provider_names: {
18 | 'weixin': '微信',
19 | 'qq': 'QQ',
20 | 'alipay': '支付宝',
21 | 'baidu': '百度',
22 | 'toutiao': '头条',
23 | },
24 |
25 | const: {
26 | __app: '__app',
27 | __member: '__member',
28 | __access_token: 'USE_ACCESS_TOKEN'
29 | },
30 |
31 | url: 'https://useim.use-cloud.com/use/',
32 | url_beta: 'https://useim.use-cloud.com/use/',
33 |
34 | get_url: () => {
35 | return config.debug ? config.url_beta : config.url;
36 | }
37 | };
38 |
39 | export default config
--------------------------------------------------------------------------------
/Ice-chat-uniapp/common/func.js:
--------------------------------------------------------------------------------
1 |
2 | import $config from './config.js'
3 | import $api from './common.js'
4 |
5 | let func = {};
6 |
7 | func = new Proxy(func, {
8 | get: function(target, key) {
9 | return new FuncContext(key);
10 | }
11 | });
12 |
13 | function FuncContext(name) {
14 | this.funcname = name;
15 | this.response = {
16 | code: 200,
17 | datas: {},
18 | msg: ''
19 | }
20 | }
21 |
22 | FuncContext.prototype = {
23 | funcname: '', // 云函数名称
24 | response: {} // 统一响应格式
25 | };
26 |
27 | /**
28 | * 调用云函数
29 | * action controller 函数路径
30 | * data controller 数据参数
31 | * */
32 | FuncContext.prototype.call = function(action, data) {
33 | uni.showNavigationBarLoading();
34 | return uniCloud.callFunction({
35 | name: this.funcname,
36 | data: {
37 | action,
38 | data
39 | }
40 | }).then(res => {
41 | if ($config.debug) {
42 | console.log(this.funcname + '/' + action + ' call', res);
43 | }
44 | if (res.result) {
45 | this.response.code = res.result.code === 0 ? 200 : res.result.code;
46 | if (this.response.code != 200) {
47 | this.response.msg = res.result.msg || res.result.message;
48 | } else {
49 | this.response.msg = res.result.msg
50 | }
51 | this.response.datas = res.result.datas || res.result;
52 | return Promise.resolve(this.response);
53 | }
54 |
55 | return Promise.reject(res);
56 | }).catch(err => {
57 | if ($config.debug) {
58 | console.log(this.table + ' call catch', err);
59 | $api.alert(JSON.stringify(err));
60 | }
61 | return Promise.reject(err);
62 | }).finally(res => {
63 | uni.hideNavigationBarLoading();
64 | });
65 | }
66 |
67 | export default func;
68 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/common/store.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import $config from './config.js'
4 |
5 | Vue.use(Vuex)
6 |
7 | const store = new Vuex.Store({
8 | state: {
9 | islogin: false,
10 | member: {},
11 | token: '',
12 | token_expired: 0,
13 |
14 | __key_member: 'usemall_member',
15 | __key_token: 'uni_id_token',
16 | __key_token_expired: 'uni_id_token_expired',
17 | },
18 | mutations: {
19 | // 登录成功
20 | login(state, res) {
21 | // 用户已登录
22 | state.islogin = true;
23 |
24 | state.member = res.member;
25 | state.token = res.user.token;
26 | state.token_expired = res.user.tokenExpired;
27 |
28 | // 存储会员 member 数据
29 | uni.setStorage({
30 | key: state.__key_member,
31 | data: state.member
32 | })
33 |
34 | // 存储uid token 数据
35 | uni.setStorage({
36 | key: state.__key_token,
37 | data: state.token
38 | })
39 | // 存储uid token_expired 数据
40 | uni.setStorage({
41 | key: state.__key_token_expired,
42 | data: state.token_expired
43 | })
44 | },
45 |
46 | // 加载 Token
47 | loadToken(state) {
48 | state.member = uni.getStorageSync(state.__key_member);
49 | state.token = uni.getStorageSync(state.__key_token);
50 | state.token_expired = uni.getStorageSync(state.__key_token_expired);
51 |
52 | if (state.token_expired > new Date().getTime()) {
53 | state.islogin = true;
54 | }
55 | },
56 |
57 | // 注销
58 | logout(state) {
59 | state.islogin = false;
60 | state.member = {};
61 | state.token = '';
62 | state.token_expired = 0;
63 |
64 | uni.removeStorage({
65 | key: state.__key_member
66 | })
67 | uni.removeStorage({
68 | key: state.__key_token
69 | })
70 | uni.removeStorage({
71 | key: state.__key_token_expired
72 | })
73 | },
74 |
75 | // token 令牌
76 | token(state, token, token_expired) {
77 | state.token = token;
78 | state.token_expired = token_expired;
79 |
80 | // 存储uid token 数据
81 | uni.setStorage({
82 | key: state.__key_token,
83 | data: state.token
84 | })
85 | // 存储uid token_expired 数据
86 | uni.setStorage({
87 | key: state.__key_token_expired,
88 | data: state.token_expired
89 | })
90 | },
91 |
92 | // 修改 member 数据
93 | putMember (state, user) {
94 | state.member = user;
95 |
96 | // 存储会员 member 数据
97 | uni.setStorage({
98 | key: state.__key_member,
99 | data: state.member
100 | })
101 | }
102 | },
103 | actions: {
104 |
105 | }
106 | })
107 |
108 | export default store
109 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/password-input/password-input.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | ●
7 | {{numLng[index]}}
8 |
9 | |
10 |
11 |
12 |
13 |
14 |
15 |
42 |
43 |
83 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-address/city-data/province.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | var provinceData = [{
3 | "label": "北京市",
4 | "value": "11"
5 | },
6 | {
7 | "label": "天津市",
8 | "value": "12"
9 | },
10 | {
11 | "label": "河北省",
12 | "value": "13"
13 | },
14 | {
15 | "label": "山西省",
16 | "value": "14"
17 | },
18 | {
19 | "label": "内蒙古自治区",
20 | "value": "15"
21 | },
22 | {
23 | "label": "辽宁省",
24 | "value": "21"
25 | },
26 | {
27 | "label": "吉林省",
28 | "value": "22"
29 | },
30 | {
31 | "label": "黑龙江省",
32 | "value": "23"
33 | },
34 | {
35 | "label": "上海市",
36 | "value": "31"
37 | },
38 | {
39 | "label": "江苏省",
40 | "value": "32"
41 | },
42 | {
43 | "label": "浙江省",
44 | "value": "33"
45 | },
46 | {
47 | "label": "安徽省",
48 | "value": "34"
49 | },
50 | {
51 | "label": "福建省",
52 | "value": "35"
53 | },
54 | {
55 | "label": "江西省",
56 | "value": "36"
57 | },
58 | {
59 | "label": "山东省",
60 | "value": "37"
61 | },
62 | {
63 | "label": "河南省",
64 | "value": "41"
65 | },
66 | {
67 | "label": "湖北省",
68 | "value": "42"
69 | },
70 | {
71 | "label": "湖南省",
72 | "value": "43"
73 | },
74 | {
75 | "label": "广东省",
76 | "value": "44"
77 | },
78 | {
79 | "label": "广西壮族自治区",
80 | "value": "45"
81 | },
82 | {
83 | "label": "海南省",
84 | "value": "46"
85 | },
86 | {
87 | "label": "重庆市",
88 | "value": "50"
89 | },
90 | {
91 | "label": "四川省",
92 | "value": "51"
93 | },
94 | {
95 | "label": "贵州省",
96 | "value": "52"
97 | },
98 | {
99 | "label": "云南省",
100 | "value": "53"
101 | },
102 | {
103 | "label": "西藏自治区",
104 | "value": "54"
105 | },
106 | {
107 | "label": "陕西省",
108 | "value": "61"
109 | },
110 | {
111 | "label": "甘肃省",
112 | "value": "62"
113 | },
114 | {
115 | "label": "青海省",
116 | "value": "63"
117 | },
118 | {
119 | "label": "宁夏回族自治区",
120 | "value": "64"
121 | },
122 | {
123 | "label": "新疆维吾尔自治区",
124 | "value": "65"
125 | },
126 | {
127 | "label": "台湾",
128 | "value": "66"
129 | },
130 | {
131 | "label": "香港",
132 | "value": "67"
133 | },
134 | {
135 | "label": "澳门",
136 | "value": "68"
137 | },
138 | {
139 | "label": "钓鱼岛",
140 | "value": "69"
141 | }
142 | ]
143 | export default provinceData;
144 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-copyright/use-copyright.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 用云·让开发更简单
8 |
9 |
10 |
11 |
12 |
13 |
30 |
31 |
41 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-empty/use-empty.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{tip}}
6 |
7 |
8 |
9 |
10 |
11 |
83 |
84 |
110 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-header/use-header.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
66 |
67 |
74 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-list-title/use-list-title.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ title }}
8 |
9 |
10 | {{tip}}
11 |
12 |
13 |
14 |
15 |
16 |
17 |
70 |
71 |
91 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-loadmore/use-loadmore.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ tip || defaults[type] }}
5 |
6 |
7 |
8 |
43 |
44 |
47 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-mask/use-mask.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
64 |
65 |
77 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-pickeraddr/use-pickeraddr.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
103 |
104 |
106 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-rate/use-rate.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
79 |
80 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-totop/use-totop.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
68 |
69 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/components/use-upload/use-upload.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
94 |
95 |
118 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/favicon.ico
--------------------------------------------------------------------------------
/Ice-chat-uniapp/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App'
3 |
4 | import $config from './common/config.js'
5 | import $api from './common/common.js'
6 | import $db from './common/db.js'
7 | import $func from './common/func.js'
8 | import $request from './common/request.js'
9 | import $store from './common/store.js'
10 | // main.js
11 | import aLoading from "@/components/a-loading.vue";
12 | Vue.component('a-loading',aLoading)
13 |
14 | // #ifdef H5 || MP-360
15 | import $iscroll from './common/iscroll.js'
16 | Vue.prototype.$iscroll = $iscroll
17 |
18 | Vue.prototype.serviceUrl = "http://157.245.86.35:9090"
19 |
20 | uni.canIUse = function(name) {
21 | return name in uni;
22 | }
23 | // #endif
24 |
25 | // 测试阶段
26 | $config.debug = process.env.NODE_ENV === 'development';
27 |
28 | if (!$config.debug) {
29 | // 取消日志打印功能
30 | console.log = () => { }
31 | }
32 |
33 | // 注册当前环境
34 | $api.register_env((env) => {
35 | Vue.prototype.$env = env;
36 | });
37 |
38 | // 全局 request 配置
39 | $request.config.baseurl = $config.get_url();
40 | // 测试阶段,开启 debug 日志
41 | $request.config.debug = $config.debug;
42 |
43 | // 全局 request 拦截器
44 | // 全局请求拦截器
45 | $request.interceptor.request = (config => {
46 | // 添加 access_token 访问令牌
47 | if (!config.header['access_token']) {
48 | config.header['access_token'] = uni.getStorageSync('access_token') || '';
49 | }
50 |
51 | // 默认提示异常信息
52 | if (config.err_tip === undefined) {
53 | config.err_tip = true
54 | }
55 |
56 | // 默认加上 loading
57 | if (config.loading == undefined)
58 | config.loading = '加载中';
59 |
60 | return config;
61 | })
62 |
63 | // 全局响应拦截器
64 | $request.interceptor.response = ((res, config) => {
65 |
66 | if (res.code === 401) {
67 | $api.msg(res.msg);
68 | // token 失效,需要重新登录
69 | // uni.navigateTo({
70 | // url: '/pages/public/login'
71 | // })
72 |
73 | return false;
74 | }
75 |
76 | if(config && config.header && config.header['access_token']) config.header['access_token'] = '';
77 |
78 | return true;
79 | })
80 |
81 | // 全局错误异常处理
82 | $request.interceptor.fail = ((res, config) => {
83 | let ret = res;
84 | let msg = ''
85 |
86 | if (res.statusCode === 200) {
87 | msg = res.data.msg
88 | ret = res.data
89 | } else if (res.statusCode > 0) {
90 | msg = '服务器异常[' + res.statusCode + ']'
91 | } else {
92 | msg = res.errMsg
93 | }
94 |
95 | if (config.err_tip) {
96 | uni.showToast({
97 | title: msg,
98 | duration: 5000,
99 | icon: 'none'
100 | })
101 | }
102 |
103 | return ret;
104 | })
105 |
106 |
107 | Vue.config.productionTip = false
108 |
109 | Vue.prototype.$config = $config
110 | Vue.prototype.$api = $api
111 | Vue.prototype.$db = $db
112 | Vue.prototype.$dbcmd = uniCloud.database().command;
113 | Vue.prototype.$func = $func
114 | Vue.prototype.$request = $request
115 | Vue.prototype.$store = $store
116 |
117 | App.mpType = 'app'
118 |
119 | const app = new Vue({
120 | ...App
121 | })
122 |
123 | app.$mount()
124 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "Usecloud-useim",
3 | "name": "用云·IM uniCloud 版",
4 | "version": "1.0.2",
5 | "description": "基于 uni-app + uni-push2.0 + uniCloud 实现,客服应用 + 即时通讯(加好友、群聊等)",
6 | "keywords": [
7 | "用云客服",
8 | "即时通讯IM",
9 | "uni-im",
10 | "uni-push2.0",
11 | "uniCloud"
12 | ],
13 | "displayName": "用云IM uniCloud 版",
14 | "repository": "",
15 | "dcloudext": {
16 | "sale": {
17 | "regular": {
18 | "price": "0.00"
19 | },
20 | "sourcecode": {
21 | "price": "0.00"
22 | }
23 | },
24 | "contact": {
25 | "qq": ""
26 | },
27 | "declaration": {
28 | "ads": "无",
29 | "data": "基于 uniCloud + uni-push2.0 实现",
30 | "permissions": "无"
31 | },
32 | "npmurl": "",
33 | "type": "unicloud-template-project"
34 | },
35 | "uni_modules": {
36 | "platforms": {
37 | "cloud": {
38 | "tcb": "y",
39 | "aliyun": "y"
40 | },
41 | "client": {
42 | "App": {
43 | "app-vue": "y",
44 | "app-nvue": "u"
45 | },
46 | "H5-mobile": {
47 | "Safari": "u",
48 | "Android Browser": "y",
49 | "微信浏览器(Android)": "y",
50 | "QQ浏览器(Android)": "y"
51 | },
52 | "H5-pc": {
53 | "Chrome": "y",
54 | "IE": "u",
55 | "Edge": "y",
56 | "Firefox": "y",
57 | "Safari": "y"
58 | },
59 | "小程序": {
60 | "微信": "y",
61 | "阿里": "u",
62 | "百度": "u",
63 | "字节跳动": "u",
64 | "QQ": "u"
65 | },
66 | "快应用": {
67 | "华为": "u",
68 | "联盟": "u"
69 | }
70 | }
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/chat/payment.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | 10元
10 |
11 |
12 | 50元
13 |
14 |
15 | 100元
16 |
17 |
18 |
19 |
20 | 200元
21 |
22 |
23 | 500元
24 |
25 |
26 | 元
27 |
28 |
29 |
30 |
31 |
32 | 付款
33 |
34 |
35 |
36 |
37 |
38 |
59 |
60 |
67 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/chat/product.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 发送
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | {{item.title}}
16 |
17 |
18 |
19 |
20 |
21 | ¥1859
22 |
23 |
24 |
25 |
26 |
27 |
28 |
31 |
32 |
33 |
34 |
35 |
108 |
109 |
122 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/content/rich-text.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
37 |
38 |
51 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/content/web.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
28 |
29 |
31 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/login/login-guide.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 | 手机登录
14 |
15 |
16 |
17 |
18 |
19 |
57 |
58 |
98 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/search/apply.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 好友申请已发送
8 |
9 |
10 | 等待对方验证通过
11 |
12 |
13 |
14 |
16 | 返回
17 |
18 |
19 |
20 |
21 |
43 |
44 |
55 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/user/collect/collect.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | bug已经修复了吗?
8 |
9 |
10 | 沙发上的猫 2020.20.19
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 沙发上的猫 2020.20.19
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | 用这套方法,配出来的颜色很难不高级!快收藏起来吧~
36 |
37 |
38 |
39 | 沙发上的猫 2020.20.19
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
56 |
57 |
60 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/user/profit/cashout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ¥
6 |
7 |
8 |
9 | 可提现收益¥580
10 |
11 |
12 |
13 |
14 | 提现金额自动转入微信零钱
15 |
16 |
17 |
18 | 提现
19 |
20 |
21 |
22 |
23 |
24 |
25 |
40 |
41 |
47 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/pages/user/profit/profit.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ¥
8 | 290
9 |
10 |
11 | 总收益
12 |
13 |
14 |
15 | 提现
16 |
17 |
18 |
19 |
20 |
21 | 收益明细
22 |
23 |
24 |
25 |
26 |
27 |
28 | 打赏
29 |
30 |
31 | ¥50
32 |
33 |
34 |
35 |
36 | 2020-01-20 15:05:36
37 |
38 |
39 | 余额: ¥290
40 |
41 |
42 |
43 |
44 |
45 |
46 | 打赏
47 |
48 |
49 | ¥50
50 |
51 |
52 |
53 |
54 | 2020-01-20 15:05:36
55 |
56 |
57 | 余额: ¥290
58 |
59 |
60 |
61 |
62 |
63 |
64 | 打赏
65 |
66 |
67 | ¥50
68 |
69 |
70 |
71 |
72 | 2020-01-20 15:05:36
73 |
74 |
75 | 余额: ¥290
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
100 |
101 |
104 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/readme.md:
--------------------------------------------------------------------------------
1 | # Usecloud.useim Ice-chat·IM v1.0.2
2 | **Ice-chat·IM,基于 uni-app + uni-push2.0,客服应用 + 即时通讯(加好友、群聊等)**
3 |
4 | 说明:目前支持平台有微信小程序、h5Weixin、h5、iOS、Android,其他平台持续更新中。(**当前为体验版,有任何问题可联系我们进行咨询**)
5 |
6 | qq:23339097
7 | wx:17630505717
8 |
9 | **Ice-chat · 让开发更简单!**
10 | ## Ice-chat团队项目推荐
11 | > **[1. 社区图片视频圈子CMS 版前后端开源](https://ext.dcloud.net.cn/plugin?id=9261)**
12 |
13 | ## [java后端](https://github.com/Thecosy/Ice-chat)
14 |
15 | ## [点击体验 PC端 IM](http://chat.snym.cn)
16 | > 体验步骤
17 | > 1. 登录 [](http://chat.snym.cn) (PC端客服系统,建议使用谷歌浏览器体验)
18 | > 2. 点击登陆,输入测试账户17630505717 密码 1234
19 |
20 | > 体验反馈
21 | > 1. 欢迎提出宝贵意见
22 | > 2. 相关bug 可统一收集整理后发给我们 谢谢
23 |
24 | ## 加QQ群([951286996](https://qm.qq.com/cgi-bin/qm/qr?k=XLX0hSw6GGuOgNbC53r-Pc7Lrubwcm4q&authKey=AaNuGPfAWTSyaN6MR5yGYFQ0+4AKsZQq7kI0uRASo+v5ttyrc6xvh7gfNEMQ7UDR&noverify=0))
25 |
26 | ## 新手指南
27 | 1. 下载 [HBuilderX](https://www.dcloud.io/hbuilderx.html) 开发者工具
28 | 2. 插件安装
工具栏 -> 工具(T) -> 插件安装 -> 安装新插件([scss/sass编译](https://ext.dcloud.net.cn/plugin?id=2046))
29 |
30 | ## 创作不易,请勿以差评的评论方式提问,谢谢!有任何问题欢迎加群咨询。
31 |
32 | ## 加QQ群、实时版本更新通知([951286996](https://qm.qq.com/cgi-bin/qm/qr?k=XLX0hSw6GGuOgNbC53r-Pc7Lrubwcm4q&authKey=AaNuGPfAWTSyaN6MR5yGYFQ0+4AKsZQq7kI0uRASo+v5ttyrc6xvh7gfNEMQ7UDR&noverify=0))
33 |
34 | ## Ice-chat团队项目推荐
35 | > **[1. 社区图片视频圈子CMS 版前后端开源](https://ext.dcloud.net.cn/plugin?id=9261)**
36 |
37 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/.DS_Store
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_0.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_1.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_3.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_4.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/hm-friends-requests-card/images/img_24029_0_5.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/.DS_Store
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/empty/cart.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/empty/cart.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/empty/empty.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/empty/empty.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/empty/message.03a0abb5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/empty/message.03a0abb5.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/empty/search.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/empty/search.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/headimg/face_12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/headimg/face_12.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/headimg/face_13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/headimg/face_13.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/headimg/face_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/headimg/face_2.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/headimg/face_4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/headimg/face_4.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/headimg/face_5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/headimg/face_5.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/headimg/face_6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/headimg/face_6.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/login-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/login-bg.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/logo.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/mescroll-progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/mescroll-progress.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/mescroll-slogan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/mescroll-slogan.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/pg-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/pg-02.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/tobar/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/tobar/.DS_Store
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/tobar/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/tobar/contact.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/tobar/contact2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/tobar/contact2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/tobar/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/tobar/message.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/tobar/message2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/tobar/message2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/tobar/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/tobar/my.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/tobar/my2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/tobar/my2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/user/default.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/user/default.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/images/user/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/images/user/default.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/static/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/static/star.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni.scss:
--------------------------------------------------------------------------------
1 |
2 | /* 页面左右间距 */
3 | $page-row-spacing: 30upx;
4 | $page-col-spacing: 20upx;
5 | $page-color-base: #f5f5f5;
6 | $page-color-light: #f8f6fc;
7 | $base-color: #4d9ff3;
8 |
9 | /* 文字尺寸 */
10 | $font-sm: 24upx;
11 | $font-base: 28upx;
12 | $font-lg: 32upx;
13 | /*文字颜色*/
14 | $font-color-dark: #303133;
15 | $font-color-base: #75787d;
16 | $font-color-light: #909399;
17 | $font-color-disabled: #C0C4CC;
18 | $font-color-spec: #4399fc;
19 | /* 边框颜色 */
20 | $border-color-dark: #DCDFE6;
21 | $border-color-base: #E4E7ED;
22 | $border-color-light: #EBEEF5;
23 | /* 图片加载中颜色 */
24 | $image-bg-color: #eee;
25 |
26 | /* 颜色变量 */
27 |
28 | /* 行为相关颜色 */
29 | $uni-color-primary: #4d9ff3;
30 | $uni-color-success: #4cd964;
31 | $uni-color-warning: #f0ad4e;
32 | $uni-color-error: #dd524d;
33 |
34 | /* 文字基本颜色 */
35 | $uni-text-color:#333;//基本色
36 | $uni-text-color-inverse:#fff;//反色
37 | $uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
38 | $uni-text-color-placeholder: #808080;
39 | $uni-text-color-disable:#c0c0c0;
40 |
41 | /* 背景颜色 */
42 | $uni-bg-color:#fff;
43 | $uni-bg-color-grey:#f8f8f8;
44 | $uni-bg-color-hover:#f1f1f1;//点击状态颜色
45 | $uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
46 |
47 | /* 边框颜色 */
48 | $uni-border-color:#c8c7cc;
49 |
50 | /* 尺寸变量 */
51 |
52 | /* 文字尺寸 */
53 | $uni-font-size-sm:24rpx;
54 | $uni-font-size-base:28rpx;
55 | $uni-font-size-lg:32rpx;
56 |
57 | /* 图片尺寸 */
58 | $uni-img-size-sm:40rpx;
59 | $uni-img-size-base:52rpx;
60 | $uni-img-size-lg:80rpx;
61 |
62 | /* Border Radius */
63 | $uni-border-radius-sm: 4rpx;
64 | $uni-border-radius-base: 6rpx;
65 | $uni-border-radius-lg: 20rpx;
66 | $uni-border-radius-circle: 50%;
67 |
68 | /* 水平间距 */
69 | $uni-spacing-row-sm: 10px;
70 | $uni-spacing-row-base: 20rpx;
71 | $uni-spacing-row-lg: 30rpx;
72 |
73 | /* 垂直间距 */
74 | $uni-spacing-col-sm: 8rpx;
75 | $uni-spacing-col-base: 16rpx;
76 | $uni-spacing-col-lg: 24rpx;
77 |
78 | /* 透明度 */
79 | $uni-opacity-disabled: 0.3; // 组件禁用态的透明度
80 |
81 | /* 文章场景相关 */
82 | $uni-color-title: #2C405A; // 文章标题颜色
83 | $uni-font-size-title:40rpx;
84 | $uni-color-subtitle: #555555; // 二级标题颜色
85 | $uni-font-size-subtitle:36rpx;
86 | $uni-color-paragraph: #3F536E; // 文章段落颜色
87 | $uni-font-size-paragraph:30rpx;
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uniCloud-aliyun/database/JQL数据库管理.jql:
--------------------------------------------------------------------------------
1 | // 本文件用于,使用JQL语法操作项目关联的uniCloud空间的数据库,方便开发调试和远程数据库管理
2 | // 编写clientDB的js API(也支持常规js语法,比如var),可以对云数据库进行增删改查操作。不支持uniCloud-db组件写法
3 | // 可以全部运行,也可以选中部分代码运行。点击工具栏上的运行按钮或者按下【F5】键运行代码
4 | // 如果文档中存在多条JQL语句,只有最后一条语句生效
5 | // 如果混写了普通js,最后一条语句需是数据库操作语句
6 | // 此处代码运行不受DB Schema的权限控制,移植代码到实际业务中注意在schema中配好permission
7 | // 不支持clientDB的action
8 | // 数据库查询有最大返回条数限制,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=limit
9 | // 详细JQL语法,请参考 https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=jsquery
10 |
11 | // 下面示例查询uni-id-users表的所有数据
12 | db.collection('uni-id-users').get();
13 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uniCloud-aliyun/database/JQL查询.jql:
--------------------------------------------------------------------------------
1 | // 本文件用于,使用JQL语法操作项目关联的uniCloud空间的数据库,方便开发调试和远程数据库管理
2 | // 编写clientDB的js API(也支持常规js语法,比如var),可以对云数据库进行增删改查操作。不支持uniCloud-db组件写法
3 | // 可以全部运行,也可以选中部分代码运行。点击工具栏上的运行按钮或者按下【F5】键运行代码
4 | // 如果文档中存在多条JQL语句,只有最后一条语句生效
5 | // 如果混写了普通js,最后一条语句需是数据库操作语句
6 | // 此处代码运行不受DB Schema的权限控制,移植代码到实际业务中注意在schema中配好permission
7 | // 不支持clientDB的action
8 | // 数据库查询有最大返回条数限制,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-database.html#limit
9 | // 详细JQL语法,请参考:https://uniapp.dcloud.net.cn/uniCloud/jql.html
10 |
11 | // 下面示例查询uni-id-users表的所有数据
12 | db.collection('uni-id-users').get();
13 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/changelog.md:
--------------------------------------------------------------------------------
1 | ## 1.3.7(2021-04-13)
2 | 1. 新增`mescroll-swiper-sticky.vue`的示例, 轮播吸顶菜单导航
3 | 2. 新增`mescroll-empty.vue`的示例, 单独使用空布局组件
4 | 3. 简化tabs在具体项目中的使用,并简化对应的示例
5 | 4. mescroll-uni 支持动态禁止滚动的属性 disableScroll (注: mescroll-body不支持)
6 | -by 小瑾同学
7 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.css:
--------------------------------------------------------------------------------
1 | .mescroll-body {
2 | position: relative; /* 下拉刷新区域相对自身定位 */
3 | height: auto; /* 不可固定高度,否则overflow:hidden导致无法滑动; 同时使设置的最小高生效,实现列表不满屏仍可下拉*/
4 | overflow: hidden; /* 当有元素写在mescroll-body标签前面时,可遮住下拉刷新区域 */
5 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */
6 | }
7 |
8 | /* 使sticky生效: 父元素不能overflow:hidden或者overflow:auto属性 */
9 | .mescroll-body.mescorll-sticky{
10 | overflow: unset !important
11 | }
12 |
13 | /* 适配 iPhoneX */
14 | @supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {
15 | .mescroll-safearea {
16 | padding-bottom: constant(safe-area-inset-bottom);
17 | padding-bottom: env(safe-area-inset-bottom);
18 | }
19 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.css:
--------------------------------------------------------------------------------
1 | /*下拉刷新--标语*/
2 | .mescroll-downwarp .downwarp-slogan{
3 | display: block;
4 | width: 420rpx;
5 | height: 168rpx;
6 | margin: auto;
7 | }
8 | /*下拉刷新--向下进度动画*/
9 | .mescroll-downwarp .downwarp-progress{
10 | display: inline-block;
11 | width: 40rpx;
12 | height: 40rpx;
13 | border: none;
14 | margin: auto;
15 | background-size: contain;
16 | background-repeat: no-repeat;
17 | background-position: center;
18 | background-image: url('@/static/images/mescroll-progress.png');
19 | transition: all 300ms;
20 | }
21 | /*下拉刷新--进度条*/
22 | .mescroll-downwarp .downwarp-loading{
23 | display: inline-block;
24 | width: 32rpx;
25 | height: 32rpx;
26 | border-radius: 50%;
27 | border: 2rpx solid #60aaff;
28 | border-bottom-color: transparent;
29 | }
30 | /*下拉刷新--吉祥物*/
31 | .mescroll-downwarp .downwarp-mascot{
32 | position: absolute;
33 | right: 16rpx;
34 | bottom: 0;
35 | width: 100rpx;
36 | height: 100rpx;
37 | background-size: contain;
38 | background-repeat: no-repeat;
39 | animation: animMascot .6s steps(1,end) infinite;
40 | }
41 | @keyframes animMascot {
42 | 0% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb1.png)}
43 | 25% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb2.png)}
44 | 50% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb3.png)}
45 | 75% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb4.png)}
46 | 100% {background-image: url(https://www.mescroll.com/img/beibei/mescroll-bb1.png)}
47 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/beibei/components/mescroll-down.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
35 |
36 |
40 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/beibei/mescroll-uni-option.js:
--------------------------------------------------------------------------------
1 | // mescroll-uni和mescroll-body 的全局配置
2 | const GlobalOption = {
3 | down: {
4 | // 其他down的配置参数也可以写,这里只展示了常用的配置:
5 | offset: uni.upx2px(140), // 在列表顶部,下拉大于140upx,松手即可触发下拉刷新的回调
6 | native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例)
7 | },
8 | up: {
9 | // 其他up的配置参数也可以写,这里只展示了常用的配置:
10 | offset: 150, // 距底部多远时,触发upCallback
11 | toTop: {
12 | // 回到顶部按钮,需配置src才显示
13 | src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png )
14 | offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px
15 | right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
16 | bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
17 | width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
18 | },
19 | empty: {
20 | use: true, // 是否显示空布局
21 | icon: "https://www.mescroll.com/img/mescroll-empty.png" // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png )
22 | }
23 | },
24 | // 国际化配置
25 | i18n: {
26 | // 中文
27 | zh: {
28 | up: {
29 | textLoading: '加载中 ...', // 加载中的提示文本
30 | textNoMore: '-- END --', // 没有更多数据的提示文本
31 | empty: {
32 | tip: '~ 暂无相关数据 ~' // 空提示
33 | }
34 | }
35 | },
36 | // 英文
37 | en: {
38 | up: {
39 | textLoading: 'loading ...',
40 | textNoMore: '-- END --',
41 | empty: {
42 | tip: '~ absolutely empty ~'
43 | }
44 | }
45 | }
46 | }
47 | }
48 |
49 | export default GlobalOption
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.css:
--------------------------------------------------------------------------------
1 | /*下拉刷新--上下箭头*/
2 | .mescroll-downwarp .downwarp-arrow {
3 | display: inline-block;
4 | width: 20px;
5 | height: 20px;
6 | margin: 10px;
7 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-arrow.png);
8 | background-size: contain;
9 | vertical-align: middle;
10 | transition: all 300ms;
11 | }
12 |
13 | /*下拉刷新--旋转进度条*/
14 | .mescroll-downwarp .downwarp-progress{
15 | width: 36px;
16 | height: 36px;
17 | border: none;
18 | margin: auto;
19 | background-size: contain;
20 | animation: progressRotate 0.6s steps(6, start) infinite;
21 | }
22 | @keyframes progressRotate {
23 | 0% {
24 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png);
25 | }
26 | 16% {
27 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress2.png);
28 | }
29 | 32% {
30 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress3.png);
31 | }
32 | 48% {
33 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress4.png);
34 | }
35 | 64% {
36 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress5.png);
37 | }
38 | 80% {
39 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress6.png);
40 | }
41 | 100% {
42 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png);
43 | }
44 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-down.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ downText }}
8 |
9 |
10 |
11 |
12 |
49 |
50 |
54 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.css:
--------------------------------------------------------------------------------
1 | /*上拉加载--旋转进度条*/
2 | .mescroll-upwarp .upwarp-progress {
3 | width: 36px;
4 | height: 36px;
5 | border: none;
6 | margin: auto;
7 | background-size: contain;
8 | animation: progressRotate 0.6s steps(6, start) infinite;
9 | }
10 | @keyframes progressRotate {
11 | 0% {
12 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png);
13 | }
14 | 16% {
15 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress2.png);
16 | }
17 | 32% {
18 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress3.png);
19 | }
20 | 48% {
21 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress4.png);
22 | }
23 | 64% {
24 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress5.png);
25 | }
26 | 80% {
27 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress6.png);
28 | }
29 | 100% {
30 | background-image: url(https://www.mescroll.com/img/xinlang/mescroll-progress1.png);
31 | }
32 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/components/mescroll-up.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ mOption.textLoading }}
8 |
9 |
10 | {{ mOption.textNoMore }}
11 |
12 |
13 |
14 |
36 |
37 |
41 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-diy/xinlang/mescroll-uni-option.js:
--------------------------------------------------------------------------------
1 | // 全局配置
2 | // mescroll-body 和 mescroll-uni 通用
3 | const GlobalOption = {
4 | down: {
5 | // 其他down的配置参数也可以写,这里只展示了常用的配置:
6 | offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调
7 | native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例)
8 | },
9 | up: {
10 | // 其他up的配置参数也可以写,这里只展示了常用的配置:
11 | offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance )
12 | toTop: {
13 | // 回到顶部按钮,需配置src才显示
14 | src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png )
15 | offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px
16 | right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
17 | bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
18 | width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
19 | },
20 | empty: {
21 | use: true, // 是否显示空布局
22 | icon: "https://www.mescroll.com/img/mescroll-empty.png" // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png )
23 | }
24 | },
25 | // 国际化配置
26 | i18n: {
27 | // 中文
28 | zh: {
29 | down: {
30 | textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本
31 | textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本
32 | textLoading: '加载中 ...', // 加载中的提示文本
33 | textSuccess: '加载成功', // 加载成功的文本
34 | textErr: '加载失败', // 加载失败的文本
35 | },
36 | up: {
37 | textLoading: '加载中 ...', // 加载中的提示文本
38 | textNoMore: '-- END --', // 没有更多数据的提示文本
39 | empty: {
40 | tip: '~ 空空如也 ~' // 空提示
41 | }
42 | }
43 | },
44 | // 英文
45 | en: {
46 | down: {
47 | textInOffset: 'drop down refresh',
48 | textOutOffset: 'release updates',
49 | textLoading: 'loading ...',
50 | textSuccess: 'loaded successfully',
51 | textErr: 'loading failed'
52 | },
53 | up: {
54 | textLoading: 'loading ...',
55 | textNoMore: '-- END --',
56 | empty: {
57 | tip: '~ absolutely empty ~'
58 | }
59 | }
60 | }
61 | }
62 | }
63 |
64 | export default GlobalOption
65 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-empty/mescroll-empty.vue:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 | {{ tip }}
9 | {{ btnText }}
10 |
11 |
12 |
13 |
74 |
75 |
117 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.css:
--------------------------------------------------------------------------------
1 | /* 下拉刷新区域 */
2 | .mescroll-downwarp {
3 | position: absolute;
4 | top: -100%;
5 | left: 0;
6 | width: 100%;
7 | height: 100%;
8 | text-align: center;
9 | }
10 |
11 | /* 下拉刷新--内容区,定位于区域底部 */
12 | .mescroll-downwarp .downwarp-content {
13 | position: absolute;
14 | left: 0;
15 | bottom: 0;
16 | width: 100%;
17 | min-height: 60rpx;
18 | padding: 20rpx 0;
19 | text-align: center;
20 | }
21 |
22 | /* 下拉刷新--提示文本 */
23 | .mescroll-downwarp .downwarp-tip {
24 | display: inline-block;
25 | font-size: 28rpx;
26 | vertical-align: middle;
27 | margin-left: 16rpx;
28 | /* color: gray; 已在style设置color,此处删去*/
29 | }
30 |
31 | /* 下拉刷新--旋转进度条 */
32 | .mescroll-downwarp .downwarp-progress {
33 | display: inline-block;
34 | width: 32rpx;
35 | height: 32rpx;
36 | border-radius: 50%;
37 | border: 2rpx solid gray;
38 | border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/
39 | vertical-align: middle;
40 | }
41 |
42 | /* 旋转动画 */
43 | .mescroll-downwarp .mescroll-rotate {
44 | animation: mescrollDownRotate 0.6s linear infinite;
45 | }
46 |
47 | @keyframes mescrollDownRotate {
48 | 0% {
49 | transform: rotate(0deg);
50 | }
51 |
52 | 100% {
53 | transform: rotate(360deg);
54 | }
55 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-down.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{downText}}
7 |
8 |
9 |
10 |
11 |
44 |
45 |
48 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-top.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
13 |
14 |
49 |
50 |
84 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.css:
--------------------------------------------------------------------------------
1 | /* 上拉加载区域 */
2 | .mescroll-upwarp {
3 | box-sizing: border-box;
4 | min-height: 110rpx;
5 | padding: 30rpx 0;
6 | text-align: center;
7 | clear: both;
8 | }
9 |
10 | /*提示文本 */
11 | .mescroll-upwarp .upwarp-tip,
12 | .mescroll-upwarp .upwarp-nodata {
13 | display: inline-block;
14 | font-size: 28rpx;
15 | vertical-align: middle;
16 | /* color: gray; 已在style设置color,此处删去*/
17 | }
18 |
19 | .mescroll-upwarp .upwarp-tip {
20 | margin-left: 16rpx;
21 | }
22 |
23 | /*旋转进度条 */
24 | .mescroll-upwarp .upwarp-progress {
25 | display: inline-block;
26 | width: 32rpx;
27 | height: 32rpx;
28 | border-radius: 50%;
29 | border: 2rpx solid gray;
30 | border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/
31 | vertical-align: middle;
32 | }
33 |
34 | /* 旋转动画 */
35 | .mescroll-upwarp .mescroll-rotate {
36 | animation: mescrollUpRotate 0.6s linear infinite;
37 | }
38 |
39 | @keyframes mescrollUpRotate {
40 | 0% {
41 | transform: rotate(0deg);
42 | }
43 |
44 | 100% {
45 | transform: rotate(360deg);
46 | }
47 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/components/mescroll-up.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ mOption.textLoading }}
8 |
9 |
10 | {{ mOption.textNoMore }}
11 |
12 |
13 |
14 |
36 |
37 |
40 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-i18n.js:
--------------------------------------------------------------------------------
1 | // 国际化工具类
2 | const mescrollI18n = {
3 | // 默认语言
4 | def: "zh",
5 | // 获取当前语言类型
6 | getType(){
7 | return uni.getStorageSync("mescroll-i18n") || this.def
8 | },
9 | // 设置当前语言类型
10 | setType(type){
11 | uni.setStorageSync("mescroll-i18n", type)
12 | }
13 | }
14 |
15 | export default mescrollI18n
16 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js:
--------------------------------------------------------------------------------
1 | // mescroll-body 和 mescroll-uni 通用
2 | const MescrollMixin = {
3 | data() {
4 | return {
5 | mescroll: null //mescroll实例对象
6 | }
7 | },
8 | // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例)
9 | onPullDownRefresh(){
10 | this.mescroll && this.mescroll.onPullDownRefresh();
11 | },
12 | // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效)
13 | onPageScroll(e) {
14 | this.mescroll && this.mescroll.onPageScroll(e);
15 | },
16 | // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效)
17 | onReachBottom() {
18 | this.mescroll && this.mescroll.onReachBottom();
19 | },
20 | methods: {
21 | // mescroll组件初始化的回调,可获取到mescroll对象
22 | mescrollInit(mescroll) {
23 | this.mescroll = mescroll;
24 | this.mescrollInitByRef(); // 兼容字节跳动小程序
25 | },
26 | // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序)
27 | mescrollInitByRef() {
28 | if(!this.mescroll || !this.mescroll.resetUpScroll){
29 | let mescrollRef = this.$refs.mescrollRef;
30 | if(mescrollRef) this.mescroll = mescrollRef.mescroll
31 | }
32 | },
33 | // 下拉刷新的回调 (mixin默认resetUpScroll)
34 | downCallback() {
35 | if(this.mescroll.optUp.use){
36 | this.mescroll.resetUpScroll()
37 | }else{
38 | setTimeout(()=>{
39 | this.mescroll.endSuccess();
40 | }, 500)
41 | }
42 | },
43 | // 上拉加载的回调
44 | upCallback() {
45 | // mixin默认延时500自动结束加载
46 | setTimeout(()=>{
47 | this.mescroll.endErr();
48 | }, 500)
49 | }
50 | },
51 | mounted() {
52 | this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况
53 | }
54 |
55 | }
56 |
57 | export default MescrollMixin;
58 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni-option.js:
--------------------------------------------------------------------------------
1 | // 全局配置
2 | // mescroll-body 和 mescroll-uni 通用
3 | const GlobalOption = {
4 | down: {
5 | // 其他down的配置参数也可以写,这里只展示了常用的配置:
6 | offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调
7 | native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例)
8 | },
9 | up: {
10 | // 其他up的配置参数也可以写,这里只展示了常用的配置:
11 | offset: 150, // 距底部多远时,触发upCallback,仅mescroll-uni生效 ( mescroll-body配置的是pages.json的 onReachBottomDistance )
12 | toTop: {
13 | // 回到顶部按钮,需配置src才显示
14 | src: "https://www.mescroll.com/img/mescroll-totop.png", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png )
15 | offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px
16 | right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
17 | bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
18 | width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx)
19 | },
20 | empty: {
21 | use: true, // 是否显示空布局
22 | icon: "https://www.mescroll.com/img/mescroll-empty.png" // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png )
23 | }
24 | },
25 | // 国际化配置
26 | i18n: {
27 | // 中文
28 | zh: {
29 | down: {
30 | textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本
31 | textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本
32 | textLoading: '加载中 ...', // 加载中的提示文本
33 | textSuccess: '加载成功', // 加载成功的文本
34 | textErr: '加载失败', // 加载失败的文本
35 | },
36 | up: {
37 | textLoading: '加载中 ...', // 加载中的提示文本
38 | textNoMore: '-- END --', // 没有更多数据的提示文本
39 | empty: {
40 | tip: '~ 空空如也 ~' // 空提示
41 | }
42 | }
43 | },
44 | // 英文
45 | en: {
46 | down: {
47 | textInOffset: 'drop down refresh',
48 | textOutOffset: 'release updates',
49 | textLoading: 'loading ...',
50 | textSuccess: 'loaded successfully',
51 | textErr: 'loading failed'
52 | },
53 | up: {
54 | textLoading: 'loading ...',
55 | textNoMore: '-- END --',
56 | empty: {
57 | tip: '~ absolutely empty ~'
58 | }
59 | }
60 | }
61 | }
62 | }
63 |
64 | export default GlobalOption
65 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.css:
--------------------------------------------------------------------------------
1 | .mescroll-uni-warp{
2 | height: 100%;
3 | }
4 |
5 | .mescroll-uni-content{
6 | height: 100%;
7 | }
8 |
9 | .mescroll-uni {
10 | position: relative;
11 | width: 100%;
12 | height: 100%;
13 | min-height: 200rpx;
14 | overflow-y: auto;
15 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */
16 | }
17 |
18 | /* 定位的方式固定高度 */
19 | .mescroll-uni-fixed{
20 | z-index: 1;
21 | position: fixed;
22 | top: 0;
23 | left: 0;
24 | right: 0;
25 | bottom: 0;
26 | width: auto; /* 使right生效 */
27 | height: auto; /* 使bottom生效 */
28 | }
29 |
30 | /* 适配 iPhoneX */
31 | @supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {
32 | .mescroll-safearea {
33 | padding-bottom: constant(safe-area-inset-bottom);
34 | padding-bottom: env(safe-area-inset-bottom);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-comp.js:
--------------------------------------------------------------------------------
1 | /**
2 | * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期
3 | */
4 | const MescrollCompMixin = {
5 | // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 (一级)
6 | onPageScroll(e) {
7 | this.handlePageScroll(e)
8 | },
9 | onReachBottom() {
10 | this.handleReachBottom()
11 | },
12 | // 当down的native: true时, 还需传递此方法进到子组件
13 | onPullDownRefresh(){
14 | this.handlePullDownRefresh()
15 | },
16 | data() {
17 | return {
18 | mescroll: { // mescroll-body写在子子子...组件的情况 (多级)
19 | onPageScroll: e=>{
20 | this.handlePageScroll(e)
21 | },
22 | onReachBottom: ()=>{
23 | this.handleReachBottom()
24 | },
25 | onPullDownRefresh: ()=>{
26 | this.handlePullDownRefresh()
27 | }
28 | }
29 | }
30 | },
31 | methods:{
32 | handlePageScroll(e){
33 | let item = this.$refs["mescrollItem"];
34 | if(item && item.mescroll) item.mescroll.onPageScroll(e);
35 | },
36 | handleReachBottom(){
37 | let item = this.$refs["mescrollItem"];
38 | if(item && item.mescroll) item.mescroll.onReachBottom();
39 | },
40 | handlePullDownRefresh(){
41 | let item = this.$refs["mescrollItem"];
42 | if(item && item.mescroll) item.mescroll.onPullDownRefresh();
43 | }
44 | }
45 | }
46 |
47 | export default MescrollCompMixin;
48 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js:
--------------------------------------------------------------------------------
1 | /**
2 | * mescroll-more-item的mixins, 仅在多个 mescroll-body 写在子组件时使用 (参考 mescroll-more 案例)
3 | */
4 | const MescrollMoreItemMixin = {
5 | // 支付宝小程序不支持props的mixin,需写在具体的页面中
6 | // #ifndef MP-ALIPAY || MP-DINGTALK
7 | props:{
8 | i: Number, // 每个tab页的专属下标
9 | index: { // 当前tab的下标
10 | type: Number,
11 | default(){
12 | return 0
13 | }
14 | }
15 | },
16 | // #endif
17 | data() {
18 | return {
19 | downOption:{
20 | auto:false // 不自动加载
21 | },
22 | upOption:{
23 | auto:false // 不自动加载
24 | },
25 | isInit: false // 当前tab是否已初始化
26 | }
27 | },
28 | watch:{
29 | // 监听下标的变化
30 | index(val){
31 | if (this.i === val && !this.isInit) this.mescrollTrigger()
32 | }
33 | },
34 | methods: {
35 | // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序)
36 | mescrollInitByRef() {
37 | if(!this.mescroll || !this.mescroll.resetUpScroll){
38 | // 字节跳动小程序编辑器不支持一个页面存在相同的ref, 多mescroll的ref需动态生成, 格式为'mescrollRef下标'
39 | let mescrollRef = this.$refs.mescrollRef || this.$refs['mescrollRef'+this.i];
40 | if(mescrollRef) this.mescroll = mescrollRef.mescroll
41 | }
42 | },
43 | // mescroll组件初始化的回调,可获取到mescroll对象 (覆盖mescroll-mixins.js的mescrollInit, 为了标记isInit)
44 | mescrollInit(mescroll) {
45 | this.mescroll = mescroll;
46 | this.mescrollInitByRef && this.mescrollInitByRef(); // 兼容字节跳动小程序
47 | // 自动加载当前tab的数据
48 | if(this.i === this.index){
49 | this.mescrollTrigger()
50 | }
51 | },
52 | // 主动触发加载
53 | mescrollTrigger(){
54 | this.isInit = true; // 标记为true
55 | if (this.mescroll) {
56 | if (this.mescroll.optDown.use) {
57 | this.mescroll.triggerDownScroll();
58 | } else{
59 | this.mescroll.triggerUpScroll();
60 | }
61 | }
62 | }
63 | }
64 | }
65 |
66 | export default MescrollMoreItemMixin;
67 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more.js:
--------------------------------------------------------------------------------
1 | /**
2 | * mescroll-body写在子组件时, 需通过mescroll的mixins补充子组件缺少的生命周期
3 | */
4 | const MescrollMoreMixin = {
5 | data() {
6 | return {
7 | tabIndex: 0, // 当前tab下标
8 | mescroll: { // mescroll-body写在子子子...组件的情况 (多级)
9 | onPageScroll: e=>{
10 | this.handlePageScroll(e)
11 | },
12 | onReachBottom: ()=>{
13 | this.handleReachBottom()
14 | },
15 | onPullDownRefresh: ()=>{
16 | this.handlePullDownRefresh()
17 | }
18 | }
19 | }
20 | },
21 | // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件
22 | onPageScroll(e) {
23 | this.handlePageScroll(e)
24 | },
25 | onReachBottom() {
26 | this.handleReachBottom()
27 | },
28 | // 当down的native: true时, 还需传递此方法进到子组件
29 | onPullDownRefresh(){
30 | this.handlePullDownRefresh()
31 | },
32 | methods:{
33 | handlePageScroll(e){
34 | let mescroll = this.getMescroll(this.tabIndex);
35 | mescroll && mescroll.onPageScroll(e);
36 | },
37 | handleReachBottom(){
38 | let mescroll = this.getMescroll(this.tabIndex);
39 | mescroll && mescroll.onReachBottom();
40 | },
41 | handlePullDownRefresh(){
42 | let mescroll = this.getMescroll(this.tabIndex);
43 | mescroll && mescroll.onPullDownRefresh();
44 | },
45 | // 根据下标获取对应子组件的mescroll
46 | getMescroll(i){
47 | if(!this.mescrollItems) this.mescrollItems = [];
48 | if(!this.mescrollItems[i]) {
49 | // v-for中的refs
50 | let vForItem = this.$refs["mescrollItem"];
51 | if(vForItem){
52 | this.mescrollItems[i] = vForItem[i]
53 | }else{
54 | // 普通的refs,不可重复
55 | this.mescrollItems[i] = this.$refs["mescrollItem"+i];
56 | }
57 | }
58 | let item = this.mescrollItems[i]
59 | return item ? item.mescroll : null
60 | },
61 | // 切换tab,恢复滚动条位置
62 | tabChange(i){
63 | let mescroll = this.getMescroll(i);
64 | if(mescroll){
65 | // 延时(比$nextTick靠谱一些),确保元素已渲染
66 | setTimeout(()=>{
67 | mescroll.scrollTo(mescroll.getScrollTop(),0)
68 | },30)
69 | }
70 | }
71 | }
72 | }
73 |
74 | export default MescrollMoreMixin;
75 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/components/mescroll-uni/wxs/renderjs.js:
--------------------------------------------------------------------------------
1 | // 使用renderjs直接操作window对象,实现动态控制app和h5的bounce
2 | // bounce: iOS橡皮筋,Android半月弧,h5浏览器下拉背景等效果 (下拉刷新时禁止)
3 | // https://uniapp.dcloud.io/frame?id=renderjs
4 |
5 | // 与wxs的me实例一致
6 | var me = {}
7 |
8 | // 初始化window对象的touch事件 (仅初始化一次)
9 | if(window && !window.$mescrollRenderInit){
10 | window.$mescrollRenderInit = true
11 |
12 |
13 | window.addEventListener('touchstart', function(e){
14 | if (me.disabled()) return;
15 | me.startPoint = me.getPoint(e); // 记录起点
16 | }, {passive: true})
17 |
18 |
19 | window.addEventListener('touchmove', function(e){
20 | if (me.disabled()) return;
21 | if (me.getScrollTop() > 0) return; // 需在顶部下拉,才禁止bounce
22 |
23 | var curPoint = me.getPoint(e); // 当前点
24 | var moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉
25 | // 向下拉
26 | if (moveY > 0) {
27 | // 可下拉的条件
28 | if (!me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && me.isUpBoth))) {
29 |
30 | // 只有touch在mescroll的view上面,才禁止bounce
31 | var el = e.target;
32 | var isMescrollTouch = false;
33 | while (el && el.tagName && el.tagName !== 'UNI-PAGE-BODY' && el.tagName != "BODY") {
34 | var cls = el.classList;
35 | if (cls && cls.contains('mescroll-render-touch')) {
36 | isMescrollTouch = true
37 | break;
38 | }
39 | el = el.parentNode; // 继续检查其父元素
40 | }
41 | // 禁止bounce (不会对swiper和iOS侧滑返回造成影响)
42 | if (isMescrollTouch && e.cancelable && !e.defaultPrevented) e.preventDefault();
43 | }
44 | }
45 | }, {passive: false})
46 | }
47 |
48 | /* 获取滚动条的位置 */
49 | me.getScrollTop = function() {
50 | return me.scrollTop || 0
51 | }
52 |
53 | /* 是否禁用下拉刷新 */
54 | me.disabled = function(){
55 | return !me.optDown || !me.optDown.use || me.optDown.native
56 | }
57 |
58 | /* 根据点击滑动事件获取第一个手指的坐标 */
59 | me.getPoint = function(e) {
60 | if (!e) {
61 | return {x: 0,y: 0}
62 | }
63 | if (e.touches && e.touches[0]) {
64 | return {x: e.touches[0].pageX,y: e.touches[0].pageY}
65 | } else if (e.changedTouches && e.changedTouches[0]) {
66 | return {x: e.changedTouches[0].pageX,y: e.changedTouches[0].pageY}
67 | } else {
68 | return {x: e.clientX,y: e.clientY}
69 | }
70 | }
71 |
72 | /**
73 | * 监听逻辑层数据的变化 (实时更新数据)
74 | */
75 | function propObserver(wxsProp) {
76 | me.optDown = wxsProp.optDown
77 | me.scrollTop = wxsProp.scrollTop
78 | me.isDownScrolling = wxsProp.isDownScrolling
79 | me.isUpScrolling = wxsProp.isUpScrolling
80 | me.isUpBoth = wxsProp.isUpBoth
81 | }
82 |
83 | /* 导出模块 */
84 | const renderBiz = {
85 | data() {
86 | return {
87 | propObserver: propObserver,
88 | }
89 | }
90 | }
91 |
92 | export default renderBiz;
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "mescroll-uni",
3 | "displayName": "【wxs+renderjs实现】高性能的下拉刷新上拉加载组件",
4 | "version": "1.3.7",
5 | "description": "mescroll - 支持uni-app的下拉刷新和上拉加载的组件,支持原生页面和局部区域滚动",
6 | "keywords": [
7 | "下拉刷新",
8 | "上拉加载",
9 | "翻页",
10 | "分页",
11 | "wxs"
12 | ],
13 | "repository": "https://github.com/mescroll/mescroll",
14 | "engines": {
15 | "HBuilderX": "^3.1.0"
16 | },
17 | "dcloudext": {
18 | "category": [
19 | "前端组件",
20 | "通用组件"
21 | ],
22 | "sale": {
23 | "regular": {
24 | "price": "0.00"
25 | },
26 | "sourcecode": {
27 | "price": "0.00"
28 | }
29 | },
30 | "contact": {
31 | "qq": ""
32 | },
33 | "declaration": {
34 | "ads": "无",
35 | "data": "无",
36 | "permissions": "无"
37 | },
38 | "npmurl": "https://www.npmjs.com/package/mescroll-uni"
39 | },
40 | "uni_modules": {
41 | "dependencies": [],
42 | "encrypt": [],
43 | "platforms": {
44 | "cloud": {
45 | "tcb": "y",
46 | "aliyun": "y"
47 | },
48 | "client": {
49 | "App": {
50 | "app-vue": "y",
51 | "app-nvue": "y"
52 | },
53 | "H5-mobile": {
54 | "Safari": "y",
55 | "Android Browser": "y",
56 | "微信浏览器(Android)": "y",
57 | "QQ浏览器(Android)": "y"
58 | },
59 | "H5-pc": {
60 | "Chrome": "y",
61 | "IE": "y",
62 | "Edge": "y",
63 | "Firefox": "y",
64 | "Safari": "y"
65 | },
66 | "小程序": {
67 | "微信": "y",
68 | "阿里": "y",
69 | "百度": "y",
70 | "字节跳动": "y",
71 | "QQ": "y"
72 | },
73 | "快应用": {
74 | "华为": "y",
75 | "联盟": "y"
76 | }
77 | }
78 | }
79 | }
80 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/mescroll-uni/readme.md:
--------------------------------------------------------------------------------
1 | ## mescroll --【wxs+renderjs实现】高性能的下拉刷新上拉加载组件
2 | 1. mescroll的uni版本 是专门用在uni-app的下拉刷新和上拉加载的组件
3 |
4 | 2. mescroll的uni版本 继承了mescroll.js的实用功能: 自动处理分页, 自动控制无数据, 空布局提示, 回到顶部按钮 ..
5 |
6 | 3. mescroll的uni版本 丰富的案例, 自由灵活的api, 超详细的注释, 可让您快速自定义真正属于自己的下拉上拉组件
7 |
8 |
9 |
10 |
11 | ## 最新文档(1.3.7版本): https://www.mescroll.com/uni.html
12 | 2021-04-13 by 小瑾同学 (文档可能会有缓存,建议打开时刷新一下)
13 |
14 |
15 | ## 1.3.5版本已调整为[uni_modules](https://uniapp.dcloud.io/uni_modules)
16 | uni_modules版本的mescroll-body 和 mescroll-empty 支持 [easycom规范](https://uniapp.dcloud.io/collocation/pages?id=easycom)
17 | 所以 main.js 无需再为mescroll-body注册全局组件
18 | 所以个别页面要单独使用 mescroll-empty , 也无需手动注册
19 | #### 1.3.5以前的用户升级为uni_modules版本:
20 | ```
21 | 1. 删除原来的 @/components/mescroll-uni 组件
22 | 2. 删除 main.js 注册的 mescroll 组件
23 | 3. 从插件市场导入最新mescroll组件 (1.3.5+uni_modules版本)
24 | 4. 全局搜索 '@/components/mescroll-uni/' 替换为 '@/uni_modules/mescroll-uni/components/mescroll-uni/'
25 | 5. mescroll-empty遵循easycom规范, 若某些页面单独使用 'mescroll-empty.vue', 可删除手动导入的代码
26 | ```
27 |
28 | ## 近期已更新优化的内容:
29 | 1. 微信小程序, app, h5使用高性能wxs和renderjs, 下拉刷新更流畅丝滑, 尤其能明显解决Android小程序下拉卡顿的问题
30 | 2. 新增`入门极简`示例, 国际化`mescroll-i18n.vue`示例, 轮播吸顶菜单`mescroll-swiper-sticky.vue`示例
31 | 3. 新增 "局部区域滚动" 的案例: mescroll-body-part.vue 和 mescroll-uni-part.vue
32 | 4. 新增 me-video 视频组件, 解决APP端视频下拉悬浮错位的问题, 参考 mescroll-options.vue 示例
33 | 5. 新增 me-tabs 组件,tabs支持水平滑动; 优化mescroll-more和mescroll-swiper的案例, 顶部tab支持水平滑动
34 | 6. 吸顶悬浮提供了原生sticky和监听滚动条实现的示例: sticky.vue 和 sticky-scroll.vue (推荐使用sticky样式实现)
35 | 7. mescroll.scrollTo(y)的y支持css选择器, 包括跨自定义组件的后代选择器, 支持滚动到子组件的view (参考 mescroll-options.vue)
36 | 8. topbar 顶部是否预留状态栏的高度, 默认false; 还可支持设置状态栏背景: 如 '#ffff00', 'url(xxx) 0 0/100% 100%', 'linear-gradient(xx)'
37 | 9. down.bgColor 和 up.bgColor 加载区域的背景,不仅支持色值, 而且还是支持背景图和渐变: 如 'url(xxx) 0 0/100% 100%', 'linear-gradient(xx)'
38 | 10. topbar,bgColor支持一行代码定义background: [https://www.runoob.com/cssref/css3-pr-background.html](https://www.runoob.com/cssref/css3-pr-background.html)
39 |
40 |
41 | 查看更多 ...
42 |
43 |
44 |
45 | #### mescroll不支持nvue,也暂无支持的计划哈,so sorry~
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-captcha/changelog.md:
--------------------------------------------------------------------------------
1 | ## 0.1.0(2021-03-01)
2 | - 调整为uni_modules目录规范
3 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-captcha/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "uni-captcha",
3 | "displayName": "uni-captcha",
4 | "version": "0.1.0",
5 | "description": "简洁、高效、灵活可配置的云端验证码模块",
6 | "keywords": [
7 | "uniCloud",
8 | "captcha",
9 | "验证码",
10 | "图形验证码",
11 | "人机验证"
12 | ],
13 | "repository": "https://gitee.com/dcloud/uni-captcha",
14 | "engines": {
15 | "HBuilderX": "^3.1.0"
16 | },
17 | "dcloudext": {
18 | "category": [
19 | "uniCloud",
20 | "云函数模板"
21 | ],
22 | "sale": {
23 | "regular": {
24 | "price": "0.00"
25 | },
26 | "sourcecode": {
27 | "price": "0.00"
28 | }
29 | },
30 | "contact": {
31 | "qq": ""
32 | },
33 | "declaration": {
34 | "ads": "无",
35 | "data": "无",
36 | "permissions": "无"
37 | },
38 | "npmurl": ""
39 | },
40 | "uni_modules": {
41 | "dependencies": [],
42 | "encrypt": [],
43 | "platforms": {
44 | "cloud": {
45 | "tcb": "y",
46 | "aliyun": "y"
47 | },
48 | "client": {
49 | "App": {
50 | "app-vue": "u",
51 | "app-nvue": "u"
52 | },
53 | "H5-mobile": {
54 | "Safari": "u",
55 | "Android Browser": "u",
56 | "微信浏览器(Android)": "u",
57 | "QQ浏览器(Android)": "u"
58 | },
59 | "H5-pc": {
60 | "Chrome": "u",
61 | "IE": "u",
62 | "Edge": "u",
63 | "Firefox": "u",
64 | "Safari": "u"
65 | },
66 | "小程序": {
67 | "微信": "u",
68 | "阿里": "u",
69 | "百度": "u",
70 | "字节跳动": "u",
71 | "QQ": "u"
72 | },
73 | "快应用": {
74 | "华为": "u",
75 | "联盟": "u"
76 | }
77 | }
78 | }
79 | }
80 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-captcha/uniCloud/cloudfunctions/common/uni-captcha/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "uni-captcha",
3 | "version": "0.1.0",
4 | "description": "uni-captcha",
5 | "main": "index.js",
6 | "homepage": "https://ext.dcloud.net.cn/plugin?id=4048",
7 | "repository": {
8 | "type": "git",
9 | "url": "git+https://gitee.com/dcloud/uni-captcha"
10 | },
11 | "author": "DCloud",
12 | "license": "Apache-2.0"
13 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-config-center/changelog.md:
--------------------------------------------------------------------------------
1 | ## 0.0.1(2021-03-15)
2 | - 初始化项目
3 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-config-center/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "uni-config-center",
3 | "displayName": "uni-config-center",
4 | "version": "0.0.1",
5 | "description": "uniCloud 配置中心",
6 | "keywords": [
7 | "配置",
8 | "配置中心"
9 | ],
10 | "repository": "",
11 | "engines": {
12 | "HBuilderX": "^3.1.0"
13 | },
14 | "dcloudext": {
15 | "category": [
16 | "uniCloud",
17 | "云函数模板"
18 | ],
19 | "sale": {
20 | "regular": {
21 | "price": 0
22 | },
23 | "sourcecode": {
24 | "price": 0
25 | }
26 | },
27 | "contact": {
28 | "qq": ""
29 | },
30 | "declaration": {
31 | "ads": "无",
32 | "data": "无",
33 | "permissions": "无"
34 | },
35 | "npmurl": ""
36 | },
37 | "directories": {
38 | "example": "../../../scripts/dist"
39 | },
40 | "uni_modules": {
41 | "dependencies": [],
42 | "encrypt": [],
43 | "platforms": {
44 | "cloud": {
45 | "tcb": "y",
46 | "aliyun": "y"
47 | },
48 | "client": {
49 | "App": {
50 | "app-vue": "u",
51 | "app-nvue": "u"
52 | },
53 | "H5-mobile": {
54 | "Safari": "u",
55 | "Android Browser": "u",
56 | "微信浏览器(Android)": "u",
57 | "QQ浏览器(Android)": "u"
58 | },
59 | "H5-pc": {
60 | "Chrome": "u",
61 | "IE": "u",
62 | "Edge": "u",
63 | "Firefox": "u",
64 | "Safari": "u"
65 | },
66 | "小程序": {
67 | "微信": "u",
68 | "阿里": "u",
69 | "百度": "u",
70 | "字节跳动": "u",
71 | "QQ": "u"
72 | },
73 | "快应用": {
74 | "华为": "u",
75 | "联盟": "u"
76 | }
77 | }
78 | }
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-config-center/readme.md:
--------------------------------------------------------------------------------
1 | # 为什么使用uni-config-center
2 |
3 | 实际开发中很多插件需要配置文件才可以正常运行,如果每个插件都单独进行配置的话就会产生下面这样的目录结构
4 |
5 | ```bash
6 | cloudfunctions
7 | └─────common 公共模块
8 | ├─plugin-a // 插件A对应的目录
9 | │ ├─index.js
10 | │ ├─config.json // plugin-a对应的配置文件
11 | │ └─other-file.cert // plugin-a依赖的其他文件
12 | └─plugin-b // plugin-b对应的目录
13 | ├─index.js
14 | └─config.json // plugin-b对应的配置文件
15 | ```
16 |
17 | 假设插件作者要发布一个项目模板,里面使用了很多需要配置的插件,无论是作者发布还是用户使用都是一个大麻烦。
18 |
19 | uni-config-center就是用了统一管理这些配置文件的,使用uni-config-center后的目录结构如下
20 |
21 | ```bash
22 | cloudfunctions
23 | └─────common 公共模块
24 | ├─plugin-a // 插件A对应的目录
25 | │ └─index.js
26 | ├─plugin-b // plugin-b对应的目录
27 | │ └─index.js
28 | └─uni-config-center
29 | ├─index.js // config-center入口文件
30 | ├─plugin-a
31 | │ ├─config.json // plugin-a对应的配置文件
32 | │ └─other-file.cert // plugin-a依赖的其他文件
33 | └─plugin-b
34 | └─config.json // plugin-b对应的配置文件
35 | ```
36 |
37 | 使用uni-config-center后的优势
38 |
39 | - 配置文件统一管理,对插件作者来说发布插件更简单了,对用户来说使用也更简单了
40 | - 支持对config.json设置schema,插件使用者在HBuilderX内编写config.json文件时会有更好的提示(后续HBuilderX会提供支持)
41 |
42 | # 用法
43 |
44 | 在要使用uni-config-center的公共模块或云函数内引入uni-config-center依赖,请参考:[使用公共模块](https://uniapp.dcloud.net.cn/uniCloud/cf-common)
45 |
46 | ```js
47 | const createConfig = require('uni-config-center')
48 |
49 | const uniIdConfig = createConfig({
50 | pluginId: 'uni-id', // 插件id
51 | defaultConfig: { // 默认配置
52 | tokenExpiresIn: 7200,
53 | tokenExpiresThreshold: 600,
54 | },
55 | customMerge: function(defaultConfig, userConfig) { // 自定义默认配置和用户配置的合并规则,不设置的情况侠会对默认配置和用户配置进行深度合并
56 | // defaudltConfig 默认配置
57 | // userConfig 用户配置
58 | return Object.assign(defaultConfig, userConfig)
59 | }
60 | })
61 |
62 |
63 | // 以如下配置为例
64 | // {
65 | // "tokenExpiresIn": 7200,
66 | // "passwordErrorLimit": 6,
67 | // "bindTokenToDevice": false,
68 | // "passwordErrorRetryTime": 3600,
69 | // "app-plus": {
70 | // "tokenExpiresIn": 2592000
71 | // },
72 | // "service": {
73 | // "sms": {
74 | // "codeExpiresIn": 300
75 | // }
76 | // }
77 | // }
78 |
79 | // 获取配置
80 | uniIdConfig.config() // 获取全部配置,注意:uni-config-center内不存在对应插件目录时会返回空对象
81 | uniIdConfig.config('tokenExpiresIn') // 指定键值获取配置,返回:7200
82 | uniIdConfig.config('service.sms.codeExpiresIn') // 指定键值获取配置,返回:300
83 | uniIdConfig.config('tokenExpiresThreshold', 600) // 指定键值获取配置,如果不存在则取传入的默认值,返回:600
84 |
85 | // 获取文件绝对路径
86 | uniIdConfig.resolve('custom-token.js') // 获取uni-config-center/uni-id/custom-token.js文件的路径
87 |
88 | // 引用文件(require)
89 | uniIDConfig.requireFile('custom-token.js') // 使用require方式引用uni-config-center/uni-id/custom-token.js文件。文件不存在时返回undefined,文件内有其他错误导致require失败时会抛出错误。
90 |
91 | // 判断是否包含某文件
92 | uniIDConfig.hasFile('custom-token.js') // 配置目录是否包含某文件,true: 文件存在,false: 文件不存在
93 | ```
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "uni-config-center",
3 | "version": "0.0.1",
4 | "description": "配置中心",
5 | "main": "index.js",
6 | "keywords": [],
7 | "author": "fxy060608",
8 | "license": "Apache-2.0"
9 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "passwordSecret": "passwordSecret-demo",
3 | "tokenSecret": "tokenSecret-demo",
4 | "tokenExpiresIn": 7200,
5 | "tokenExpiresThreshold": 600,
6 | "passwordErrorLimit": 6,
7 | "passwordErrorRetryTime": 3600,
8 | "autoSetInviteCode": false,
9 | "forceInviteCode": false,
10 | "app-plus": {
11 | "tokenExpiresIn": 2592000,
12 | "oauth" : {
13 | "weixin" : {
14 | "appid" : "weixin appid",
15 | "appsecret" : "weixin appsecret"
16 | }
17 | }
18 | },
19 | "mp-weixin": {
20 | "oauth" : {
21 | "weixin" : {
22 | "appid" : "wx24f9bf180110784b",
23 | "appsecret" : "wx24f9bf180110784b"
24 | }
25 | }
26 | },
27 | "mp-alipay": {
28 | "oauth" : {
29 | "alipay" : {
30 | "appid" : "alipay appid",
31 | "privateKey" : "alipay privateKey"
32 | }
33 | }
34 | },
35 | "service": {
36 | "sms": {
37 | "name": "DCloud",
38 | "codeExpiresIn": 300,
39 | "smsKey": "your sms key",
40 | "smsSecret": "your sms secret"
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-id/changelog.md:
--------------------------------------------------------------------------------
1 | ## 3.0.12(2021-04-13)
2 | - 调整bindTokenToDevice默认值为false
3 | ## 3.0.11(2021-04-12)
4 | - 修复3.0.7版本引出的多个用户访问时可能出现30201报错的Bug
5 | ## 3.0.10(2021-04-08)
6 | - 优化错误提示
7 | ## 3.0.9(2021-04-08)
8 | - bindMobile接口支持通过一键登录的方式绑定
9 | - 优化错误提示
10 | ## 3.0.8(2021-03-19)
11 | - 修复 3.0.7版本某些情况下生成token报错的Bug
12 | ## 3.0.7(2021-03-19)
13 | - 新增 支持uni-config-center,更新uni-id无须再担心配置被覆盖 [详情](https://uniapp.dcloud.io/uniCloud/uni-id?id=uni-config-center)
14 | - 新增 自定义token内容,可以缓存角色权限之外的更多信息到客户端 [详情](https://uniapp.dcloud.io/uniCloud/uni-id?id=custom-token)
15 | - 新增 支持传入context获取uni-id实例,防止单实例多并发时全局context混乱 [详情](https://uniapp.dcloud.io/uniCloud/uni-id?id=create-instance)
16 | ## 3.0.6(2021-03-05)
17 | - 新增[uniID.wxBizDataCrypt](https://uniapp.dcloud.io/uniCloud/uni-id?id=%e5%be%ae%e4%bf%a1%e6%95%b0%e6%8d%ae%e8%a7%a3%e5%af%86)方法
18 | - 优化loginByApple方法,提高接口响应速度
19 | ## 3.0.5(2021-02-03)
20 | - 调整为uni_modules目录规范
21 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-id/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "uni-id",
3 | "displayName": "uni-id",
4 | "version": "3.0.12",
5 | "description": "简单、统一、可扩展的用户中心",
6 | "keywords": [
7 | "uniid",
8 | "uni-id",
9 | "用户管理",
10 | "用户中心",
11 | "短信验证码"
12 | ],
13 | "repository": "https://gitee.com/dcloud/uni-id.git",
14 | "engines": {
15 | "HBuilderX": "^3.1.0"
16 | },
17 | "dcloudext": {
18 | "category": [
19 | "uniCloud",
20 | "云函数模板"
21 | ],
22 | "sale": {
23 | "regular": {
24 | "price": "0.00"
25 | },
26 | "sourcecode": {
27 | "price": "0.00"
28 | }
29 | },
30 | "contact": {
31 | "qq": ""
32 | },
33 | "declaration": {
34 | "ads": "无",
35 | "data": "无",
36 | "permissions": "无"
37 | },
38 | "npmurl": ""
39 | },
40 | "uni_modules": {
41 | "dependencies": ["uni-config-center"],
42 | "encrypt": [],
43 | "platforms": {
44 | "cloud": {
45 | "tcb": "y",
46 | "aliyun": "y"
47 | },
48 | "client": {
49 | "App": {
50 | "app-vue": "u",
51 | "app-nvue": "u"
52 | },
53 | "H5-mobile": {
54 | "Safari": "u",
55 | "Android Browser": "u",
56 | "微信浏览器(Android)": "u",
57 | "QQ浏览器(Android)": "u"
58 | },
59 | "H5-pc": {
60 | "Chrome": "u",
61 | "IE": "u",
62 | "Edge": "u",
63 | "Firefox": "u",
64 | "Safari": "u"
65 | },
66 | "小程序": {
67 | "微信": "u",
68 | "阿里": "u",
69 | "百度": "u",
70 | "字节跳动": "u",
71 | "QQ": "u"
72 | },
73 | "快应用": {
74 | "华为": "u",
75 | "联盟": "u"
76 | }
77 | }
78 | }
79 | }
80 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-id/readme.md:
--------------------------------------------------------------------------------
1 | **文档已移至[uni-id文档](https://uniapp.dcloud.net.cn/uniCloud/uni-id)**
2 |
3 | > 一般uni-id升级大版本时为不兼容更新,从低版本迁移到高版本请参考:[uni-id迁移指南](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=migration)
4 |
5 | ## 重要升级说明
6 |
7 | **uni-id 3.x版本,搭配的uniCloud admin版本需大于1.2.10。**
8 |
9 | ### 缓存角色权限
10 |
11 | 自`uni-id 3.0.0`起,支持在token内缓存用户的角色权限,默认开启此功能,各登录接口的needPermission参数不再生效。如需关闭请在config内配置`"removePermissionAndRoleFromToken": true`。
12 |
13 | 为什么要缓存角色权限?要知道云数据库是按照读写次数来收取费用的,并且读写数据库会拖慢接口响应速度。未配置`"removePermissionAndRoleFromToken": true`的情况下,可以在调用checkToken接口时不查询数据库获取用户角色权限。
14 |
15 | 详细checkToken流程如下:
16 |
17 | 
18 |
19 | 可以看出,旧版token(removePermissionAndRoleFromToken为true时生成的)在checkToken时如需返回权限需要进行两次数据库查询。新版token不需要查库即可返回权限信息。
20 |
21 | **注意**
22 |
23 | - 由于角色权限缓存在token内,可能会存在权限已经更新但是用户token未过期之前依然是旧版角色权限的情况。可以调短一些token过期时间来减少这种情况的影响。
24 | - admin角色token内不包含permission,如需自行判断用户是否有某个权限,要注意admin角色需要额外判断一下,写法如下
25 | ```js
26 | const {
27 | role,
28 | permission
29 | } = await uniID.checkToken(event.uniIdToken)
30 | if(role.includes('admin') || permission.includes('your permission id')) {
31 | // 当前角色拥有'your permission id'对应的权限
32 | }
33 | ```
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-id/uniCloud/cloudfunctions/common/uni-id/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "uni-id",
3 | "version": "3.0.12",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "uni-config-center": {
8 | "version": "file:../../../../../uni-config-center/uniCloud/cloudfunctions/common/uni-config-center"
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-id/uniCloud/cloudfunctions/common/uni-id/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "uni-id",
3 | "version": "3.0.12",
4 | "description": "uni-id for uniCloud",
5 | "main": "index.js",
6 | "homepage": "https://uniapp.dcloud.io/uniCloud/uni-id",
7 | "repository": {
8 | "type": "git",
9 | "url": "git+https://gitee.com/dcloud/uni-id.git"
10 | },
11 | "author": "",
12 | "license": "Apache-2.0",
13 | "dependencies": {
14 | "uni-config-center": "file:../../../../../uni-config-center/uniCloud/cloudfunctions/common/uni-config-center"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-load-more/changelog.md:
--------------------------------------------------------------------------------
1 | ## 1.1.6(2021-02-05)
2 | - 调整为uni_modules目录规范
3 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-load-more/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "uni-load-more",
3 | "displayName": "LoadMore 加载更多",
4 | "version": "1.1.6",
5 | "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。",
6 | "keywords": [
7 | "loadmore",
8 | "uni-ui",
9 | "加载更多",
10 | "load-more"
11 | ],
12 | "repository": "https://github.com/dcloudio/uni-ui",
13 | "engines": {
14 | "HBuilderX": ""
15 | },
16 | "directories": {
17 | "example": "../../temps/example_temps"
18 | },
19 | "dcloudext": {
20 | "category": [
21 | "前端组件",
22 | "通用组件"
23 | ],
24 | "sale": {
25 | "regular": {
26 | "price": "0.00"
27 | },
28 | "sourcecode": {
29 | "price": "0.00"
30 | }
31 | },
32 | "contact": {
33 | "qq": ""
34 | },
35 | "declaration": {
36 | "ads": "无",
37 | "data": "无",
38 | "permissions": "无"
39 | },
40 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
41 | },
42 | "uni_modules": {
43 | "dependencies": [],
44 | "encrypt": [],
45 | "platforms": {
46 | "cloud": {
47 | "tcb": "y",
48 | "aliyun": "y"
49 | },
50 | "client": {
51 | "App": {
52 | "app-vue": "y",
53 | "app-nvue": "y"
54 | },
55 | "H5-mobile": {
56 | "Safari": "y",
57 | "Android Browser": "y",
58 | "微信浏览器(Android)": "y",
59 | "QQ浏览器(Android)": "y"
60 | },
61 | "H5-pc": {
62 | "Chrome": "y",
63 | "IE": "y",
64 | "Edge": "y",
65 | "Firefox": "y",
66 | "Safari": "y"
67 | },
68 | "小程序": {
69 | "微信": "y",
70 | "阿里": "y",
71 | "百度": "y",
72 | "字节跳动": "y",
73 | "QQ": "y"
74 | },
75 | "快应用": {
76 | "华为": "u",
77 | "联盟": "u"
78 | }
79 | }
80 | }
81 | }
82 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-load-more/readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ### LoadMore 加载更多
4 | > 代码块: `uLoadMore`
5 |
6 |
7 | 用于列表中,做滚动加载使用,展示 loading 的各种状态。
8 |
9 | ### 安装方式
10 |
11 | 本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
12 |
13 | 如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
14 |
15 | ### 使用方式
16 |
17 | 在 ``template`` 中使用组件
18 |
19 | ```html
20 |
21 | ```
22 |
23 | ## API
24 |
25 | ### LoadMore Props
26 |
27 | |属性名 |类型 | 可选值 |默认值 |说明 |
28 | |:-: |:-: |:-: |:-: |:-: |
29 | |iconSize |Number |- |24 |指定图标大小 |
30 | |status |String |more/loading/moMore |more |loading 的状态 |
31 | |showIcon |Boolean|- |true |是否显示 loading 图标 |
32 | |iconType |String |snow/circle/auto |auto |指定图标样式|
33 | |color |String |- |#777777 |图标和文字颜色 |
34 | |contentText|Object|- |{contentdown: "上拉显示更多",contentrefresh: "正在加载...",contentnomore: "没有更多数据了"}|各状态文字说明 |
35 |
36 |
37 | #### Status Options
38 | |参数名称 |说明 |
39 | |:-: |:-: |
40 | |more |loading前 |
41 | |loading|loading前中 |
42 | |more |没有更多数据 |
43 |
44 | #### IconType Options
45 | |参数名称 |说明 |
46 | |:-: |:-: |
47 | |snow |ios雪花加载样式 |
48 | |circle |安卓环形加载样式 |
49 | |auto |根据平台自动选择加载样式 |
50 |
51 |
52 |
53 |
54 | > `iconType`为`snow`时,在`APP-NVUE`平台不可设置大小,在非`APP-NVUE`平台不可设置颜色
55 |
56 |
57 |
58 | ### 事件说明
59 |
60 | |事件名 |说明 |返回值 |
61 | |:-: |:-: |:-: |
62 | |clickLoadMore |点击加载更多时触发 |e.detail={status:'loading'}|
63 |
64 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-popup/changelog.md:
--------------------------------------------------------------------------------
1 | ## 1.2.9(2021-02-05)
2 | - 优化 组件引用关系,通过uni_modules引用组件
3 | ## 1.2.8(2021-02-05)
4 | - 调整为uni_modules目录规范
5 | ## 1.2.7(2021-02-05)
6 | - 调整为uni_modules目录规范
7 | - 新增 支持 PC 端
8 | - 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
9 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-popup/components/uni-popup/keypress.js:
--------------------------------------------------------------------------------
1 | // #ifdef H5
2 | export default {
3 | name: 'Keypress',
4 | props: {
5 | disable: {
6 | type: Boolean,
7 | default: false
8 | }
9 | },
10 | mounted () {
11 | const keyNames = {
12 | esc: ['Esc', 'Escape'],
13 | tab: 'Tab',
14 | enter: 'Enter',
15 | space: [' ', 'Spacebar'],
16 | up: ['Up', 'ArrowUp'],
17 | left: ['Left', 'ArrowLeft'],
18 | right: ['Right', 'ArrowRight'],
19 | down: ['Down', 'ArrowDown'],
20 | delete: ['Backspace', 'Delete', 'Del']
21 | }
22 | const listener = ($event) => {
23 | if (this.disable) {
24 | return
25 | }
26 | const keyName = Object.keys(keyNames).find(key => {
27 | const keyName = $event.key
28 | const value = keyNames[key]
29 | return value === keyName || (Array.isArray(value) && value.includes(keyName))
30 | })
31 | if (keyName) {
32 | // 避免和其他按键事件冲突
33 | setTimeout(() => {
34 | this.$emit(keyName, {})
35 | }, 0)
36 | }
37 | }
38 | document.addEventListener('keyup', listener)
39 | this.$once('hook:beforeDestroy', () => {
40 | document.removeEventListener('keyup', listener)
41 | })
42 | },
43 | render: () => {}
44 | }
45 | // #endif
46 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-popup/components/uni-popup/message.js:
--------------------------------------------------------------------------------
1 | export default {
2 | created() {
3 | if (this.type === 'message') {
4 | // 不显示遮罩
5 | this.maskShow = false
6 | // 获取子组件对象
7 | this.childrenMsg = null
8 | }
9 | },
10 | methods: {
11 | customOpen() {
12 | if (this.childrenMsg) {
13 | this.childrenMsg.open()
14 | }
15 | },
16 | customClose() {
17 | if (this.childrenMsg) {
18 | this.childrenMsg.close()
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-popup/components/uni-popup/popup.js:
--------------------------------------------------------------------------------
1 | import message from './message.js';
2 | // 定义 type 类型:弹出类型:top/bottom/center
3 | const config = {
4 | // 顶部弹出
5 | top: 'top',
6 | // 底部弹出
7 | bottom: 'bottom',
8 | // 居中弹出
9 | center: 'center',
10 | // 消息提示
11 | message: 'top',
12 | // 对话框
13 | dialog: 'center',
14 | // 分享
15 | share: 'bottom',
16 | }
17 |
18 | export default {
19 | data() {
20 | return {
21 | config: config,
22 | popupWidth: 0,
23 | popupHeight: 0
24 | }
25 | },
26 | mixins: [message],
27 | computed: {
28 | isDesktop() {
29 | return this.popupWidth >= 500 && this.popupHeight >= 500
30 | }
31 | },
32 | mounted() {
33 | const fixSize = () => {
34 | const {
35 | windowWidth,
36 | windowHeight,
37 | windowTop
38 | } = uni.getSystemInfoSync()
39 | this.popupWidth = windowWidth
40 | this.popupHeight = windowHeight + windowTop
41 | }
42 | fixSize()
43 | // #ifdef H5
44 | window.addEventListener('resize', fixSize)
45 | this.$once('hook:beforeDestroy', () => {
46 | window.removeEventListener('resize', fixSize)
47 | })
48 | // #endif
49 | },
50 | }
51 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-popup/components/uni-popup/share.js:
--------------------------------------------------------------------------------
1 | export default {
2 | created() {
3 | if (this.type === 'share') {
4 | // 关闭点击
5 | this.mkclick = false
6 | }
7 | },
8 | methods: {
9 | customOpen() {
10 | console.log('share 打开了');
11 | },
12 | customClose() {
13 | console.log('share 关闭了');
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-popup/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "uni-popup",
3 | "displayName": "PopUp 弹出层",
4 | "version": "1.2.9",
5 | "description": " Popup 组件,提供常用的弹层",
6 | "keywords": [
7 | "popup",
8 | "uni-ui",
9 | "弹出层",
10 | "uni-popup"
11 | ],
12 | "repository": "https://github.com/dcloudio/uni-ui",
13 | "engines": {
14 | "HBuilderX": ""
15 | },
16 | "directories": {
17 | "example": "../../temps/example_temps"
18 | },
19 | "dcloudext": {
20 | "category": [
21 | "前端组件",
22 | "通用组件"
23 | ],
24 | "sale": {
25 | "regular": {
26 | "price": "0.00"
27 | },
28 | "sourcecode": {
29 | "price": "0.00"
30 | }
31 | },
32 | "contact": {
33 | "qq": ""
34 | },
35 | "declaration": {
36 | "ads": "无",
37 | "data": "无",
38 | "permissions": "无"
39 | },
40 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
41 | },
42 | "uni_modules": {
43 | "dependencies": [
44 | "uni-transition"
45 | ],
46 | "encrypt": [],
47 | "platforms": {
48 | "cloud": {
49 | "tcb": "y",
50 | "aliyun": "y"
51 | },
52 | "client": {
53 | "App": {
54 | "app-vue": "y",
55 | "app-nvue": "y"
56 | },
57 | "H5-mobile": {
58 | "Safari": "y",
59 | "Android Browser": "y",
60 | "微信浏览器(Android)": "y",
61 | "QQ浏览器(Android)": "y"
62 | },
63 | "H5-pc": {
64 | "Chrome": "y",
65 | "IE": "y",
66 | "Edge": "y",
67 | "Firefox": "y",
68 | "Safari": "y"
69 | },
70 | "小程序": {
71 | "微信": "y",
72 | "阿里": "y",
73 | "百度": "y",
74 | "字节跳动": "y",
75 | "QQ": "y"
76 | },
77 | "快应用": {
78 | "华为": "u",
79 | "联盟": "u"
80 | }
81 | }
82 | }
83 | }
84 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-transition/changelog.md:
--------------------------------------------------------------------------------
1 | ## 1.0.2(2021-02-05)
2 | - 调整为uni_modules目录规范
3 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-transition/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "uni-transition",
3 | "displayName": "Transition 过渡动画",
4 | "version": "1.0.2",
5 | "description": "元素的简单过渡动画",
6 | "keywords": [
7 | "动画",
8 | "过渡",
9 | "uni-transition",
10 | "过渡动画"
11 | ],
12 | "repository": "https://github.com/dcloudio/uni-ui",
13 | "engines": {
14 | "HBuilderX": ""
15 | },
16 | "directories": {
17 | "example": "../../temps/example_temps"
18 | },
19 | "dcloudext": {
20 | "category": [
21 | "前端组件",
22 | "通用组件"
23 | ],
24 | "sale": {
25 | "regular": {
26 | "price": "0.00"
27 | },
28 | "sourcecode": {
29 | "price": "0.00"
30 | }
31 | },
32 | "contact": {
33 | "qq": ""
34 | },
35 | "declaration": {
36 | "ads": "无",
37 | "data": "无",
38 | "permissions": "无"
39 | },
40 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
41 | },
42 | "uni_modules": {
43 | "dependencies": [],
44 | "encrypt": [],
45 | "platforms": {
46 | "cloud": {
47 | "tcb": "y",
48 | "aliyun": "y"
49 | },
50 | "client": {
51 | "App": {
52 | "app-vue": "y",
53 | "app-nvue": "y"
54 | },
55 | "H5-mobile": {
56 | "Safari": "y",
57 | "Android Browser": "y",
58 | "微信浏览器(Android)": "y",
59 | "QQ浏览器(Android)": "y"
60 | },
61 | "H5-pc": {
62 | "Chrome": "y",
63 | "IE": "y",
64 | "Edge": "y",
65 | "Firefox": "y",
66 | "Safari": "y"
67 | },
68 | "小程序": {
69 | "微信": "y",
70 | "阿里": "y",
71 | "百度": "y",
72 | "字节跳动": "y",
73 | "QQ": "y"
74 | },
75 | "快应用": {
76 | "华为": "u",
77 | "联盟": "u"
78 | }
79 | }
80 | }
81 | }
82 | }
--------------------------------------------------------------------------------
/Ice-chat-uniapp/uni_modules/uni-transition/readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Transition 过渡动画
4 | > 代码块: `uTransition`
5 |
6 |
7 | 元素的简单过渡动画,组件名:`uni-transition`
8 |
9 | ### 安装方式
10 |
11 | 本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
12 |
13 | 如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
14 |
15 | ### 基本用法
16 |
17 | 在 ``template`` 中使用组件
18 |
19 | ```html
20 |
21 |
22 |
23 |
24 |
25 |
26 | ```
27 | ``` javascript
28 |
29 | import uniTransition from '@/components/uni-transition/uni-transition.vue'
30 | export default {
31 | components: {
32 | uniTransition
33 | },
34 | data() {
35 | return {
36 | show: false,
37 | }
38 | },
39 | onLoad() {},
40 | methods: {
41 | open(mode) {
42 | this.show = !this.show
43 | },
44 | change() {
45 | console.log('触发动画')
46 | }
47 | }
48 | }
49 | ```
50 |
51 | ## API
52 |
53 | ### Transition Props
54 |
55 | |属性名 |类型 |默认值 |说明 |
56 | |:-: |:-: |:-: |:-:|
57 | |show |Boolean|false |控制组件显示或隐藏, |
58 | |modeClass |Array |- |过渡动画类型 |
59 | |duration |Number |300 |过渡动画持续时间 |
60 | |styles |Object |- |组件样式,同 css 样式,注意带’-‘连接符的属性需要使用小驼峰写法如:`backgroundColor:red` |
61 |
62 | #### modeClass 类型说明
63 | **格式为** :`['fade','slide-top']`
64 |
65 | |属性名 |说明 |
66 | |:-: |:-: |
67 | |fade |渐隐渐出过渡 |
68 | |slide-top |由上至下过渡 |
69 | |slide-right |由右至左过渡 |
70 | |slide-bottom |由下至上过渡 |
71 | |slide-left |由左至右过渡 |
72 | |zoom-in |由小到大过渡 |
73 | |zoom-out |由大到小过渡 |
74 |
75 | **注意**
76 |
77 | 组合使用时,同一种类型相反的过渡动画如(slide-top、slide-bottom)同时使用时,只有最后一个生效
78 |
79 | ### Transition Events
80 |
81 | |事件称名 |说明 |返回值 |
82 | |:-: |:-: |:-: |
83 | |click |点击组件触发 |- |
84 | |change |过渡动画结束时触发 | e = {detail:true} |
85 |
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/.automator/h5/.automator.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/.automator/h5/.automator.json
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/index.html:
--------------------------------------------------------------------------------
1 |
用云IM uniCloud 版
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_0.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_1.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_3.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_4.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/hm-friends-requests-card/images/img_24029_0_5.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/cart.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/cart.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/empty.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/empty.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/message.03a0abb5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/message.03a0abb5.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/search.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/empty/search.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_12.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_13.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_2.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_4.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_5.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/headimg/face_6.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/login-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/login-bg.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/logo.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/mescroll-progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/mescroll-progress.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/mescroll-slogan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/mescroll-slogan.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/pg-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/pg-02.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/contact.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/contact2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/contact2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/message.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/message2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/message2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/my.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/my2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/tobar/my2.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/user/default.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/user/default.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/user/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/images/user/default.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/face_12.0bdad333.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/face_12.0bdad333.jpg
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/mescroll-slogan.40aa47ed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/mescroll-slogan.40aa47ed.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/message.03a0abb5.5712d6eb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/message.03a0abb5.5712d6eb.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/star.a7215108.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/img/star.a7215108.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/js/pages-content-rich-text.5bc790b0.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-content-rich-text"],{"17d8":function(n,t,e){"use strict";var a=e("73a0"),r=e.n(a);r.a},"3f87":function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a={data:function(){return{content:""}},onShow:function(){var n=uni.getStorageSync("__rich_text");this.content=n}};t.default=a},"49d2":function(n,t,e){var a=e("24fb");t=a(!1),t.push([n.i,'@charset "UTF-8";\n/* 页面左右间距 */\n/* 文字尺寸 */\n/*文字颜色*/\n/* 边框颜色 */\n/* 图片加载中颜色 */\n/* 颜色变量 */\n/* 行为相关颜色 */\n/* 文字基本颜色 */\n/* 背景颜色 */\n/* 边框颜色 */\n/* 尺寸变量 */\n/* 文字尺寸 */\n/* 图片尺寸 */\n/* Border Radius */\n/* 水平间距 */\n/* 垂直间距 */\n/* 透明度 */\n/* 文章场景相关 */.pro-detail[data-v-3abc11b6]{width:100%;overflow:hidden;-webkit-touch-callout:none}.pro-detail img[data-v-3abc11b6]{width:100%;max-width:100%;overflow:hidden}',""]),n.exports=t},"6f0a":function(n,t,e){"use strict";var a;e.d(t,"b",(function(){return r})),e.d(t,"c",(function(){return o})),e.d(t,"a",(function(){return a}));var r=function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("v-uni-view",[e("v-uni-rich-text",{staticClass:"pro-detail",attrs:{nodes:n.content}})],1)},o=[]},"73a0":function(n,t,e){var a=e("49d2");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[n.i,a,""]]),a.locals&&(n.exports=a.locals);var r=e("4f06").default;r("60fa409b",a,!0,{sourceMap:!1,shadowMode:!1})},b88e:function(n,t,e){"use strict";e.r(t);var a=e("6f0a"),r=e("bd38");for(var o in r)"default"!==o&&function(n){e.d(t,n,(function(){return r[n]}))}(o);e("17d8");var i,u=e("f0c5"),c=Object(u["a"])(r["default"],a["b"],a["c"],!1,null,"3abc11b6",null,!1,a["a"],i);t["default"]=c.exports},bd38:function(n,t,e){"use strict";e.r(t);var a=e("3f87"),r=e.n(a);for(var o in a)"default"!==o&&function(n){e.d(t,n,(function(){return a[n]}))}(o);t["default"]=r.a}}]);
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/js/pages-content-web.1140cde4.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-content-web"],{"83db":function(t,e,n){"use strict";var r;n.d(e,"b",(function(){return u})),n.d(e,"c",(function(){return i})),n.d(e,"a",(function(){return r}));var u=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-uni-view",[n("v-uni-web-view",{attrs:{"webview-styles":t.webviewStyles,src:t.weburl}})],1)},i=[]},a010:function(t,e,n){"use strict";n.r(e);var r=n("83db"),u=n("cfa9");for(var i in u)"default"!==i&&function(t){n.d(e,t,(function(){return u[t]}))}(i);var a,c=n("f0c5"),o=Object(c["a"])(u["default"],r["b"],r["c"],!1,null,"25c59372",null,!1,r["a"],a);e["default"]=o.exports},cb64:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={data:function(){return{webviewStyles:{progress:{color:"#ff6a6c"}},weburl:""}},onLoad:function(t){this.weburl=t.url,uni.setNavigationBarTitle({title:"用云 "+(t.title||"")})}};e.default=r},cfa9:function(t,e,n){"use strict";n.r(e);var r=n("cb64"),u=n.n(r);for(var i in r)"default"!==i&&function(t){n.d(e,t,(function(){return r[t]}))}(i);e["default"]=u.a}}]);
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/js/pages-search-apply.9e4a7014.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-search-apply"],{"54d4":function(n,t,a){"use strict";a.r(t);var i=a("81a2"),e=a.n(i);for(var o in i)"default"!==o&&function(n){a.d(t,n,(function(){return i[n]}))}(o);t["default"]=e.a},5646:function(n,t,a){var i=a("7663");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[n.i,i,""]]),i.locals&&(n.exports=i.locals);var e=a("4f06").default;e("259a6526",i,!0,{sourceMap:!1,shadowMode:!1})},7663:function(n,t,a){var i=a("24fb");t=i(!1),t.push([n.i,'@charset "UTF-8";\n/* 页面左右间距 */\n/* 文字尺寸 */\n/*文字颜色*/\n/* 边框颜色 */\n/* 图片加载中颜色 */\n/* 颜色变量 */\n/* 行为相关颜色 */\n/* 文字基本颜色 */\n/* 背景颜色 */\n/* 边框颜色 */\n/* 尺寸变量 */\n/* 文字尺寸 */\n/* 图片尺寸 */\n/* Border Radius */\n/* 水平间距 */\n/* 垂直间距 */\n/* 透明度 */\n/* 文章场景相关 */uni-page-body[data-v-0ed98c62]{width:100%;height:100%}.imgWh[data-v-0ed98c62]{width:%?300?%;height:%?300?%}',""]),n.exports=t},"81a2":function(n,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i={data:function(){return{profile:""}},onLoad:function(n){this.profile=n.profile,console.log("options",this.profile)},methods:{toback:function(){uni.navigateBack()}}};t.default=i},8646:function(n,t,a){"use strict";var i;a.d(t,"b",(function(){return e})),a.d(t,"c",(function(){return o})),a.d(t,"a",(function(){return i}));var e=function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("v-uni-view",{staticClass:"wh-full pos-r"},[a("v-uni-view",{staticClass:"pos-a pos-tl-c tac",staticStyle:{top:"30%"}},[a("v-uni-image",{staticClass:"imgWh",attrs:{src:n.profile,mode:""}}),a("v-uni-view",{},[a("v-uni-view",{},[n._v("好友申请已发送")]),a("v-uni-view",{},[n._v("等待对方验证通过")])],1)],1),a("v-uni-view",{staticClass:"pos-a pos-tl-c",staticStyle:{color:"#fff",top:"75%","background-color":"#4d9ff4",padding:"20rpx 70rpx","border-radius":"20rpx"},on:{click:function(t){arguments[0]=t=n.$handleEvent(t),n.toback.apply(void 0,arguments)}}},[n._v("返回")])],1)},o=[]},d7a0:function(n,t,a){"use strict";var i=a("5646"),e=a.n(i);e.a},da1b:function(n,t,a){"use strict";a.r(t);var i=a("8646"),e=a("54d4");for(var o in e)"default"!==o&&function(n){a.d(t,n,(function(){return e[n]}))}(o);a("d7a0");var r,u=a("f0c5"),c=Object(u["a"])(e["default"],i["b"],i["c"],!1,null,"0ed98c62",null,!1,i["a"],r);t["default"]=c.exports}}]);
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/js/pages-user-collect-collect.91909847.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-user-collect-collect"],{6208:function(t,i,a){"use strict";a.r(i);var e=a("c0f0"),n=a("cb9b");for(var s in n)"default"!==s&&function(t){a.d(i,t,(function(){return n[t]}))}(s);var r,d=a("f0c5"),c=Object(d["a"])(n["default"],e["b"],e["c"],!1,null,"31fbb2ef",null,!1,e["a"],r);i["default"]=c.exports},"893d":function(t,i,a){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var e={data:function(){return{}}};i.default=e},c0f0:function(t,i,a){"use strict";var e;a.d(i,"b",(function(){return n})),a.d(i,"c",(function(){return s})),a.d(i,"a",(function(){return e}));var n=function(){var t=this,i=t.$createElement,a=t._self._c||i;return a("v-uni-view",[a("v-uni-view",{staticClass:"padding-lr margin-top"},[a("v-uni-view",{staticClass:"border-radius padding-lr bg-drak padding-tb",staticStyle:{"align-items":"center"}},[a("v-uni-view",{},[a("v-uni-view",{staticClass:" "},[t._v("bug已经修复了吗?")]),a("v-uni-view",{staticClass:"font_color padding-top-sm"},[t._v("沙发上的猫 2020.20.19")])],1)],1)],1),a("v-uni-view",{staticClass:"padding-lr margin-top"},[a("v-uni-view",{staticClass:"border-radius padding-lr bg-drak padding-tb",staticStyle:{"align-items":"center"}},[a("v-uni-view",{},[a("v-uni-view",{staticClass:" "},[a("v-uni-image",{staticClass:"border-radius",staticStyle:{width:"120rpx",height:"120rpx"},attrs:{src:"/static/images/headimg/face_12.jpg",mode:""}})],1),a("v-uni-view",{staticClass:"font_color padding-top-sm"},[t._v("沙发上的猫 2020.20.19")])],1)],1)],1),a("v-uni-view",{staticClass:"padding-lr margin-top"},[a("v-uni-view",{staticClass:"border-radius padding-lr bg-drak padding-tb",staticStyle:{"align-items":"center"}},[a("v-uni-view",{},[a("v-uni-view",{staticClass:"dflex-b"},[a("v-uni-view",{},[a("v-uni-image",{staticClass:"border-radius",staticStyle:{width:"120rpx",height:"120rpx"},attrs:{src:"/static/images/headimg/face_12.jpg",mode:""}})],1),a("v-uni-view",{staticStyle:{width:"75%","align-self":"start"}},[t._v("用这套方法,配出来的颜色很难不高级!快收藏起来吧~")])],1),a("v-uni-view",{staticClass:"ft-dark padding-top-sm"},[t._v("沙发上的猫 2020.20.19")])],1)],1)],1)],1)},s=[]},cb9b:function(t,i,a){"use strict";a.r(i);var e=a("893d"),n=a.n(e);for(var s in e)"default"!==s&&function(t){a.d(i,t,(function(){return e[t]}))}(s);i["default"]=n.a}}]);
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/js/pages-user-profit-cashout.4edddaee.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-user-profit-cashout"],{1143:function(t,e,i){"use strict";i.r(e);var n=i("c628"),a=i("3106");for(var s in a)"default"!==s&&function(t){i.d(e,t,(function(){return a[t]}))}(s);i("52ee");var c,o=i("f0c5"),d=Object(o["a"])(a["default"],n["b"],n["c"],!1,null,"35ed86ec",null,!1,n["a"],c);e["default"]=d.exports},3106:function(t,e,i){"use strict";i.r(e);var n=i("bae8"),a=i.n(n);for(var s in n)"default"!==s&&function(t){i.d(e,t,(function(){return n[t]}))}(s);e["default"]=a.a},"486c":function(t,e,i){var n=i("64d3");n.__esModule&&(n=n.default),"string"===typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);var a=i("4f06").default;a("0c95c3f2",n,!0,{sourceMap:!1,shadowMode:!1})},"52ee":function(t,e,i){"use strict";var n=i("486c"),a=i.n(n);a.a},"64d3":function(t,e,i){var n=i("24fb");e=n(!1),e.push([t.i,".box[data-v-35ed86ec]{width:60%;border-bottom:%?2?% solid #d4d4d4}",""]),t.exports=e},bae8:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n={data:function(){return{money:""}},methods:{withdraw:function(){this.$api.msg("提现")}}};e.default=n},c628:function(t,e,i){"use strict";var n;i.d(e,"b",(function(){return a})),i.d(e,"c",(function(){return s})),i.d(e,"a",(function(){return n}));var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-uni-view",[i("v-uni-view",{staticClass:"dflex-c",staticStyle:{"margin-top":"150rpx","flex-direction":"column"}},[i("v-uni-view",{staticClass:"dflex box padding-tb-xs"},[i("v-uni-text",{staticClass:"fs-34 padding-right-sm",staticStyle:{"font-weight":"bold"}},[t._v("¥")]),i("v-uni-input",{attrs:{type:"text",value:"",placeholder:"输入提现金额"},model:{value:t.money,callback:function(e){t.money=e},expression:"money"}})],1),i("v-uni-view",{staticClass:"dflex-flow-c dflex-c padding-top-xs",staticStyle:{"align-self":"stretch",width:"67%"}},[t._v("可提现收益¥580")])],1),i("v-uni-view",{staticClass:" padding-lr-sm padding-bottom w-full fixed pos-bottom"},[i("v-uni-view",{staticClass:"tac padding-tb"},[t._v("提现金额自动转入微信零钱")]),i("v-uni-view",{staticClass:"padding-tb bg-main border-radius-lg tac padding-lr-sm bg-base",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.withdraw.apply(void 0,arguments)}}},[i("v-uni-view",{staticClass:" "},[t._v("提现")])],1)],1)],1)},s=[]}}]);
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/js/pages-user-profit-profit.de03d12d.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-user-profit-profit"],{3704:function(i,t,s){"use strict";var e;s.d(t,"b",(function(){return a})),s.d(t,"c",(function(){return n})),s.d(t,"a",(function(){return e}));var a=function(){var i=this,t=i.$createElement,s=i._self._c||t;return s("v-uni-view",[s("v-uni-view",{staticClass:"padding-lr margin-top"},[s("v-uni-view",{staticClass:"padding-tb-sm dflex padding-lr-lg border-radius dflex-b",staticStyle:{"background-color":"#4d9ff3"}},[s("v-uni-view",{},[s("v-uni-view",{staticClass:"ft-white"},[s("v-uni-text",{staticClass:"fs-xs"},[i._v("¥")]),s("v-uni-text",{staticClass:"fs-xxl fwb"},[i._v("290")])],1),s("v-uni-view",{staticClass:"ft-white margin-left"},[i._v("总收益")])],1),s("v-uni-view",{staticClass:"ft-white border-radius-xs padding-tb-xs tac bg-main",staticStyle:{width:"19%",color:"#4d9ff3"},on:{click:function(t){arguments[0]=t=i.$handleEvent(t),i.deposit.apply(void 0,arguments)}}},[i._v("提现")])],1)],1),s("v-uni-view",{staticClass:"padding-lr margin-top"},[s("v-uni-view",{staticClass:"fs-34",staticStyle:{"font-weight":"bold"}},[i._v("收益明细")])],1),s("v-uni-view",{staticClass:"padding-lr margin-bottom"},[s("v-uni-view",{staticClass:"padding-tb-sm border-line"},[s("v-uni-view",{staticClass:"dflex-b"},[s("v-uni-view",{},[i._v("打赏")]),s("v-uni-view",{staticClass:"fs-34 ft-base",staticStyle:{"font-weight":"bold"}},[i._v("¥50")])],1),s("v-uni-view",{staticClass:"dflex-b ft-dark"},[s("v-uni-view",{},[i._v("2020-01-20 15:05:36")]),s("v-uni-view",{},[i._v("余额: ¥290")])],1)],1),s("v-uni-view",{staticClass:"padding-tb-sm border-line"},[s("v-uni-view",{staticClass:"dflex-b"},[s("v-uni-view",{},[i._v("打赏")]),s("v-uni-view",{staticClass:"fs-34 ft-base",staticStyle:{"font-weight":"bold"}},[i._v("¥50")])],1),s("v-uni-view",{staticClass:"dflex-b ft-dark"},[s("v-uni-view",{},[i._v("2020-01-20 15:05:36")]),s("v-uni-view",{},[i._v("余额: ¥290")])],1)],1),s("v-uni-view",{staticClass:"padding-tb-sm border-line"},[s("v-uni-view",{staticClass:"dflex-b"},[s("v-uni-view",{},[i._v("打赏")]),s("v-uni-view",{staticClass:"fs-34 ft-base",staticStyle:{"font-weight":"bold"}},[i._v("¥50")])],1),s("v-uni-view",{staticClass:"dflex-b ft-dark"},[s("v-uni-view",{},[i._v("2020-01-20 15:05:36")]),s("v-uni-view",{},[i._v("余额: ¥290")])],1)],1)],1)],1)},n=[]},"6c36":function(i,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e={data:function(){return{}},methods:{deposit:function(){uni.navigateTo({url:"/pages/user/profit/cashout"})}}};t.default=e},"7a97":function(i,t,s){"use strict";s.r(t);var e=s("6c36"),a=s.n(e);for(var n in e)"default"!==n&&function(i){s.d(t,i,(function(){return e[i]}))}(n);t["default"]=a.a},"86c3":function(i,t,s){"use strict";s.r(t);var e=s("3704"),a=s("7a97");for(var n in a)"default"!==n&&function(i){s.d(t,i,(function(){return a[i]}))}(n);var v,u=s("f0c5"),l=Object(u["a"])(a["default"],e["b"],e["c"],!1,null,"724ee60d",null,!1,e["a"],v);t["default"]=l.exports}}]);
--------------------------------------------------------------------------------
/Ice-chat-uniapp/unpackage/dist/build/h5/static/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/Ice-chat-uniapp/unpackage/dist/build/h5/static/star.png
--------------------------------------------------------------------------------
/Ice-chat-uniapp/utils/date.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable quotes */
2 | /* eslint-disable no-array-constructor */
3 | /* eslint-disable spaced-comment */
4 | export function formatDate(date, fmt) {
5 | if (/(y+)/.test(fmt)) {
6 | fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
7 | }
8 | const o = {
9 | 'M+': date.getMonth() + 1,
10 | 'd+': date.getDate(),
11 | 'h+': date.getHours(),
12 | 'm+': date.getMinutes(),
13 | 's+': date.getSeconds()
14 | }
15 | for (const k in o) {
16 | if (new RegExp(`(${k})`).test(fmt)) {
17 | const str = o[k] + ''
18 | fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str))
19 | }
20 | }
21 | return fmt
22 | }
23 |
24 | function padLeftZero(str) {
25 | return ('00' + str).substr(str.length)
26 | }
27 |
28 | export function Todate(num) { //Fri Oct 31 18:00:00 UTC+0800 2008
29 | num = num + ''
30 | var date = ''
31 | var month = new Array()
32 | month["Jan"] = 1; month["Feb"] = 2; month["Mar"] = 3; month["Apr"] = 4; month["May"] = 5; month["Jan"] = 6
33 | month["Jul"] = 7; month["Aug"] = 8; month["Sep"] = 9; month["Oct"] = 10; month["Nov"] = 11; month["Dec"] = 12
34 | var week = new Array()
35 | week["Mon"] = "一"; week["Tue"] = "二"; week["Wed"] = "三"; week["Thu"] = "四"; week["Fri"] = "五"; week["Sat"] = "六"; week["Sun"] = "日"
36 | const str = num.split(" ")
37 | date = str[3] + "-"
38 | date = date + month[str[1]] + "-" + str[2] + " " + str[4]
39 | return date
40 | }
41 |
42 | export function GetWeekdate(intime) { //Fri Oct 31 18:00:00 UTC+0800 2008
43 |
44 | var dateString = intime;
45 | var dateObject = new Date(dateString);
46 | dateObject.getDay()//返回值是 0(周日) 到 6(周六) 之间的一个整数。
47 | return dateObject.getDay()
48 | }
49 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Ice-chat概述
2 | Ice-chat是一个基于spring boot的多端聊天系统。支持群聊与点对点聊天。当前包括uniapp客户端与Java服务器端。3分钟就可以整套系统跑起来。
3 |
4 | ### 项目官方网站
5 |
6 |
7 | ### 功能与特点
8 |
9 | ##### 功能列表
10 |
11 | * 频道里群聊
12 | * 与其他用户点对点聊天
13 | * 聊天支持文字、表情、URL等
14 | * 注册用户(不需要密码)
15 | * 创建频道、加入频道
16 | * 我的最近聊天、我的频道
17 | * 聊天记录缓存(在服务器端)
18 | * 客户端选择聊天服务器、添加聊天服务器
19 |
20 | ##### 特点
21 |
22 | * 简单到极致的 http 聊天服务器:一个 jar 包跑起来
23 | * 轻量级客户端:聊天界面使用 Webview 的方式
24 |
25 | ## 快速开始
26 | Docker部署方式(推荐,可用于快速上线或测试)
27 |
28 | # 未安装docker的请先安装docker,已经安装的跳过此步
29 | yum install docker-ce -y
30 | #启动docker
31 | systemctl start docker
32 | # 配置国内源
33 | # 创建docker目录
34 | sudo mkdir -p /etc/docker
35 | # 创建配置文件
36 | sudo tee /etc/docker/daemon.json <<-'EOF'
37 | {
38 | "registry-mirrors": ["https://registry.docker-cn.com"]
39 | }
40 | EOF
41 | # 加载新的配置文件
42 | sudo systemctl daemon-reload
43 | # 重启docker服务
44 | sudo systemctl restart docker
45 |
46 | 1.运行redis容器
47 | docker run -p 6379:6379 --name redis -d redis
48 |
49 | 2.运行Spring容器
50 | docker run -d -p 9090:9090 \
51 | --name icechat\
52 | --link redis:redis\
53 | thecosy/ice-chat:latest
54 |
55 | ### 聊天服务器
56 |
57 | Ice-chat的服务器端使用 Java 语言编写,基于最简单实用的开源框架。
58 |
59 | * http 服务器使用 [websocket](http://www.eclipse.org/jetty/):轻量级的 Java Servlet 容器。
60 | * 数据库使用 [sqlite](http://http://www.h2database.com/): 轻量级的 Java 内存/文件数据库。
61 | * 页面模板使用 [uniapp](http://freemarker.sourceforge.net/):轻量级的 Java 页面模板引擎。
62 | * 打包时集成为一个整体 jar 包(包含所有的依赖包)
63 |
64 | 要运行Ice-chat服务器端,请在 github项目界面相关版本下载 dist/ 目录下的 .jar 文件。
65 |
66 | 要打包 server-java,请在项目该目录下执行 mvn package 命令。
67 |
68 | 使用如下命令运行服务器:
69 |
70 | java -Dfile.encoding=UTF-8 -jar pushtalk-server-with-dependencies.jar
71 |
72 | `注:实际的文件名后边一般会加上一个版本号。`
73 |
74 | 上述命令运行后:
75 |
76 | * 一个 http server 启动了,监听端口为 10010
77 | * 浏览器里输入 http://localhost:10010 则可以访问到界面
78 | * 要正确地运行服务器,需要通过客户端访问
79 |
80 | Ice-chat服务器默认使用 `10010` 端口。可以在上述命令后指定使用另外的端口。比如以下命令指定使用 `10011` 来启动Ice-chat聊天服务器:
81 |
82 | java -Dfile.encoding=UTF-8 -jar pushtalk-server-with-dependencies.jar 10011
83 |
84 |
85 | ### 移动 客户端
86 |
87 | 
88 |
89 | 客户端运行,请在 github 文件下载页 下载 Android apk 安装到 Android 手机即可。
90 |
91 | 你也可以自己编译 `/client-android` 项目之后安装到手机。
92 |
93 | 客户端默认内置官方聊天服务器地址。也可以直接在客户端添加新的服务器,选择新的聊天服务器。
94 |
95 | 如果你有服务器资源,可以长期运行,欢迎你架设Ice-chat聊天服务器,请添加到以下的页面。经过测试没有问题,会被选择预置到客户端代码里:
96 |
97 |
98 |
99 |
100 | ### 开发者支持
101 |
102 | 欢迎广大开发者加入本开源项目,大家一起来不断地丰满、完善Ice-chat。
103 |
104 | 本人是因为兴趣业余时间来开发Ice-chat,考虑到 IM 占用的时间太多,所以请谅解,不提供任何 IM 的沟通方式。希望大家以如下的方式交流:
105 |
106 | * Email: <23339097@qq.com>
107 | * PushTalk频道:`pushtalk`, `报告bug`, `新功能讨论` 等
108 |
109 | 代码提交方式:请先提交Bug修复,把 diff 以文件方式发邮件给我。合作多次后,我可以把你加入到本项目贡献者里来,你就可以随时自由地提交代码了。
110 |
111 | 你也可以自由地 fork 本项目,自己去发布新的版本。
112 |
113 | Ice-chat使用的开源协议:[Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
114 |
115 |
--------------------------------------------------------------------------------
/identifier.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/identifier.sqlite
--------------------------------------------------------------------------------
/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/src/.DS_Store
--------------------------------------------------------------------------------
/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/src/main/.DS_Store
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/src/main/java/com/ninespace/.DS_Store
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/SpringDataSqliteApplication.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite;
2 |
3 | import org.mybatis.spring.annotation.MapperScan;
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.cache.annotation.EnableCaching;
7 | import org.springframework.scheduling.annotation.EnableScheduling;
8 | import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
9 |
10 | @EnableScheduling
11 | @MapperScan("com.ninespace.sqlite.mapper")
12 | @EnableCaching
13 | @SpringBootApplication
14 | @EnableSwagger2WebMvc
15 | public class SpringDataSqliteApplication {
16 |
17 | public static void main(String[] args) {
18 | SpringApplication.run(SpringDataSqliteApplication.class, args);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/configuration/CorsConfig.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.configuration;
2 |
3 | import org.springframework.context.annotation.Configuration;
4 | import org.springframework.web.servlet.config.annotation.CorsRegistry;
5 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
6 |
7 | @Configuration
8 | public class CorsConfig implements WebMvcConfigurer {
9 | @Override
10 | public void addCorsMappings(CorsRegistry registry) {
11 | registry.addMapping("/**")
12 | .allowedOrigins("*")
13 | .allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS")
14 | .allowCredentials(true)
15 | .maxAge(3600)
16 | .allowedHeaders("*");
17 | }
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/configuration/Knife4jConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.configuration;
2 |
3 | import org.springframework.context.annotation.Bean;
4 | import org.springframework.context.annotation.Configuration;
5 | import springfox.documentation.builders.ApiInfoBuilder;
6 | import springfox.documentation.builders.PathSelectors;
7 | import springfox.documentation.builders.RequestHandlerSelectors;
8 | import springfox.documentation.spi.DocumentationType;
9 | import springfox.documentation.spring.web.plugins.Docket;
10 | import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
11 |
12 | @Configuration
13 | @EnableSwagger2WebMvc
14 | public class Knife4jConfiguration {
15 |
16 | @Bean(value = "dockerBean")
17 | public Docket dockerBean() {
18 | //指定使用Swagger2规范
19 | Docket docket=new Docket(DocumentationType.SWAGGER_2)
20 | .apiInfo(new ApiInfoBuilder()
21 | //描述字段支持Markdown语法
22 | .description("# Knife4j RESTful APIs")
23 | .termsOfServiceUrl("https://doc.xiaominfo.com/")
24 | .contact("xiaoymin@foxmail.com")
25 | .version("1.0")
26 | .build())
27 | //分组名称
28 | .groupName("用户服务")
29 | .select()
30 | //这里指定Controller扫描包路径
31 | .apis(RequestHandlerSelectors.basePackage("com.ninespace.sqlite.controller"))
32 | .paths(PathSelectors.any())
33 | .build();
34 | return docket;
35 | }
36 | }
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/configuration/RedisConfig.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.configuration;
2 |
3 | import org.springframework.context.annotation.Bean;
4 | import org.springframework.context.annotation.Configuration;
5 | import org.springframework.data.redis.connection.RedisConnectionFactory;
6 | import org.springframework.data.redis.core.RedisTemplate;
7 | import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
8 | import org.springframework.data.redis.serializer.StringRedisSerializer;
9 | import com.fasterxml.jackson.annotation.JsonAutoDetect;
10 | import com.fasterxml.jackson.annotation.PropertyAccessor;
11 | import com.fasterxml.jackson.databind.ObjectMapper;
12 |
13 | @Configuration
14 | public class RedisConfig {
15 | @Bean
16 | @SuppressWarnings("all")
17 | public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
18 | RedisTemplate template = new RedisTemplate();
19 | template.setConnectionFactory(factory);
20 | Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
21 | ObjectMapper om = new ObjectMapper();
22 | om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
23 | om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
24 | jackson2JsonRedisSerializer.setObjectMapper(om);
25 | StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
26 | // key采用String的序列化方式
27 | template.setKeySerializer(stringRedisSerializer);
28 | // hash的key也采用String的序列化方式
29 | template.setHashKeySerializer(stringRedisSerializer);
30 | // value序列化方式采用jackson
31 | template.setValueSerializer(jackson2JsonRedisSerializer);
32 | // hash的value序列化方式采用jackson
33 | template.setHashValueSerializer(jackson2JsonRedisSerializer);
34 | template.afterPropertiesSet();
35 | return template;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/configuration/WebSocketConfig.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.configuration;
2 |
3 | import org.springframework.context.annotation.Bean;
4 | import org.springframework.context.annotation.Configuration;
5 | import org.springframework.web.socket.server.standard.ServerEndpointExporter;
6 |
7 | @Configuration
8 | public class WebSocketConfig {
9 |
10 | /**
11 | * 注入一个ServerEndpointExporter,该Bean会自动注册使用@ServerEndpoint注解申明的websocket endpoint
12 | */
13 | @Bean
14 | public ServerEndpointExporter serverEndpointExporter() {
15 | return new ServerEndpointExporter();
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/controller/TestController.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.controller;
2 |
3 |
4 | import com.ninespace.sqlite.entity.User;
5 | import com.ninespace.sqlite.service.UserService;
6 | import com.ninespace.sqlite.vo.Result;
7 | import io.swagger.annotations.Api;
8 | import io.swagger.annotations.ApiOperation;
9 | import org.springframework.beans.factory.annotation.Autowired;
10 | import org.springframework.web.bind.annotation.GetMapping;
11 | import org.springframework.web.bind.annotation.PathVariable;
12 | import org.springframework.web.bind.annotation.RequestMapping;
13 | import org.springframework.web.bind.annotation.RestController;
14 |
15 | import java.util.Date;
16 | import java.util.concurrent.ArrayBlockingQueue;
17 | import java.util.concurrent.Executors;
18 | import java.util.concurrent.ThreadPoolExecutor;
19 | import java.util.concurrent.TimeUnit;
20 |
21 | @RestController
22 | @Api(tags = "测试接口")
23 | @RequestMapping("/test")
24 | public class TestController {
25 |
26 | @Autowired
27 | private UserService userService;
28 |
29 | //采用线程池技术来生成数据。部分参数参考自己的配置进行设置。
30 | // 我这里采用核心线程数10,最大线程数20,阻塞队列容量10w
31 | // 拒绝策略CallerRunsPolicy的参数来生成。
32 | @ApiOperation(value = "生成测试数据")
33 | @GetMapping("/create}")
34 | public Integer createData(Integer password) {
35 | if (password != 1024) {
36 | return 0;
37 | }
38 | ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(10,
39 | 20, 1, TimeUnit.MINUTES,
40 | new ArrayBlockingQueue(100000),
41 | Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy());
42 | int max = 1000000;
43 | for (int i = 0; i < max; i++) {
44 | poolExecutor.execute(() -> {
45 | Date now = new Date();
46 | User user = new User();
47 | // user.setStatus(0);
48 | // user.setUserName(UUID.randomUUID().toString().replace("-", ""));
49 | // user.setAddress("");
50 | // user.setCreateTime(now);
51 | // user.setUpdateTime(now);
52 | userService.save(user);
53 | });
54 | }
55 | return 1;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/entity/Friend.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.entity;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableId;
5 | import com.baomidou.mybatisplus.annotation.TableName;
6 | import lombok.Data;
7 |
8 | /**
9 | * @program: spring-data-sqlite
10 | * @description:
11 | * @author: hewei
12 | * @date: 2021-10-21 17:42
13 | **/
14 | @Data
15 | @TableName(schema = "main",value = "c_friend")
16 | public class Friend {
17 |
18 | @TableId(value = "id",type = IdType.AUTO)
19 | private Long id;
20 | private Integer userId;
21 | private Integer friendId;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/entity/Group.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.entity;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableId;
5 | import com.baomidou.mybatisplus.annotation.TableName;
6 | import lombok.Data;
7 | import org.w3c.dom.Text;
8 |
9 | /**
10 | * @program: spring-data-sqlite
11 | * @description:
12 | * @author: hewei
13 | * @date: 2021-10-21 17:42
14 | **/
15 | @Data
16 | @TableName(schema = "main",value = "c_group")
17 | public class Group {
18 |
19 | @TableId(value = "id",type = IdType.AUTO)
20 | private Long id;
21 | private String groupName;
22 | private Long groupOwner;
23 | private String members;
24 | private String profile;
25 | private String intro;
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/entity/OfflineMsg.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.entity;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableId;
5 | import com.baomidou.mybatisplus.annotation.TableName;
6 | import lombok.Data;
7 |
8 | import java.util.Date;
9 |
10 | @Data
11 | @TableName(schema = "main",value = "offline_msg")
12 | public class OfflineMsg{
13 |
14 | private static final long serialVersionUID = 1L;
15 |
16 | @TableId(value = "id",type = IdType.AUTO)
17 | private String id;
18 | private String fromId;
19 | private String toId;
20 | private String msg;
21 | private String time;
22 | private Integer type;
23 | private String groupId;
24 | private String profile;
25 |
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/entity/User.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.entity;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableId;
5 | import com.baomidou.mybatisplus.annotation.TableName;
6 | import lombok.Data;
7 |
8 | /**
9 | * @program: spring-data-sqlite
10 | * @description:
11 | * @author: hewei
12 | * @date: 2021-10-21 17:42
13 | **/
14 | @Data
15 | @TableName(schema = "main",value = "c_user")
16 | public class User {
17 |
18 | @TableId(value = "id",type = IdType.AUTO)
19 | private Integer id;
20 | private String name;
21 | private Long phone;
22 | private String addr;
23 | private String gender;
24 | private String intro;
25 | private String profile;
26 | private String email;
27 | private String username;
28 | private String password;
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/mapper/FriendMapper.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.ninespace.sqlite.entity.Friend;
5 | import com.ninespace.sqlite.entity.User;
6 | import org.springframework.stereotype.Repository;
7 |
8 | @Repository
9 | public interface FriendMapper extends BaseMapper {
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/mapper/GroupMapper.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.ninespace.sqlite.entity.Friend;
5 | import com.ninespace.sqlite.entity.Group;
6 | import org.springframework.stereotype.Repository;
7 |
8 | @Repository
9 | public interface GroupMapper extends BaseMapper {
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/mapper/OfflineMsgMapper.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.ninespace.sqlite.entity.OfflineMsg;
5 | import org.springframework.stereotype.Repository;
6 |
7 | @Repository
8 | public interface OfflineMsgMapper extends BaseMapper {
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/mapper/UserMapper.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.ninespace.sqlite.entity.User;
5 | import org.apache.ibatis.annotations.Param;
6 | import org.springframework.stereotype.Repository;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * @program: spring-data-sqlite
12 | * @description:
13 | * @author: hewei
14 | * @date: 2021-10-21 17:40
15 | **/
16 | @Repository
17 | public interface UserMapper extends BaseMapper {
18 | List selectByAddr(@Param("addr") String addr);
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/service/FriendService.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.service;
2 |
3 | import cn.hutool.json.JSONObject;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 | import com.ninespace.sqlite.entity.Friend;
6 | import com.ninespace.sqlite.entity.OfflineMsg;
7 | import org.springframework.stereotype.Repository;
8 |
9 | @Repository
10 | public interface FriendService extends IService {
11 | JSONObject getFriendList(Integer userid);
12 | JSONObject getOnlyFriendList(Integer userid);
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/service/GroupService.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.service;
2 |
3 | import cn.hutool.json.JSONObject;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 | import com.ninespace.sqlite.entity.Friend;
6 | import com.ninespace.sqlite.entity.Group;
7 | import org.springframework.stereotype.Repository;
8 |
9 | @Repository
10 | public interface GroupService extends IService {
11 | JSONObject getOnlyGroupList(Integer userid);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/service/OfflineMsgService.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.service;
2 |
3 | import com.baomidou.mybatisplus.extension.service.IService;
4 | import com.ninespace.sqlite.entity.OfflineMsg;
5 | import org.springframework.stereotype.Repository;
6 |
7 | @Repository
8 | public interface OfflineMsgService extends IService {
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/service/UserService.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.service;
2 |
3 | import com.baomidou.mybatisplus.extension.service.IService;
4 | import com.ninespace.sqlite.entity.OfflineMsg;
5 | import com.ninespace.sqlite.entity.User;
6 | import org.springframework.stereotype.Repository;
7 |
8 | @Repository
9 |
10 | public interface UserService extends IService {
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/service/impl/OfflineMsgServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.ninespace.sqlite.entity.OfflineMsg;
5 | import com.ninespace.sqlite.mapper.OfflineMsgMapper;
6 | import com.ninespace.sqlite.service.OfflineMsgService;
7 | import org.springframework.stereotype.Service;
8 |
9 | @Service
10 | public class OfflineMsgServiceImpl extends ServiceImpl implements OfflineMsgService {
11 |
12 | }
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/service/impl/UserServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.ninespace.sqlite.entity.OfflineMsg;
5 | import com.ninespace.sqlite.entity.User;
6 | import com.ninespace.sqlite.mapper.OfflineMsgMapper;
7 | import com.ninespace.sqlite.mapper.UserMapper;
8 | import com.ninespace.sqlite.service.OfflineMsgService;
9 | import com.ninespace.sqlite.service.UserService;
10 | import org.springframework.stereotype.Service;
11 |
12 | @Service
13 | public class UserServiceImpl extends ServiceImpl implements UserService {
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/task/GetRedisData.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.task;
2 |
3 | import com.ninespace.sqlite.controller.UserController;
4 | import com.ninespace.sqlite.entity.User;
5 | import com.ninespace.sqlite.mapper.UserMapper;
6 | import com.ninespace.sqlite.util.RedisUtil;
7 | import org.springframework.scheduling.annotation.Scheduled;
8 | import org.springframework.stereotype.Component;
9 |
10 | import javax.annotation.PreDestroy;
11 | import javax.annotation.Resource;
12 | import java.util.HashMap;
13 | import java.util.List;
14 | import java.util.Map;
15 |
16 | @Component
17 | public class GetRedisData {
18 |
19 | @Resource
20 | private UserMapper userMapper;
21 |
22 | @Resource
23 | private RedisUtil redisUtils;
24 |
25 | public void getData(){
26 | System.out.println("开启刷新热点数据");
27 | //系统启动中。。。从数据库获取值
28 | // List users = userMapper.selectList(null);
29 | // for (User user : users) {
30 | // //存入redis,以便于后面都从redis获取值,而不是每次从数据库直接查询
31 | // redisUtils.set(user.getUsername(),user.getProfile());
32 | // }
33 | }
34 |
35 | @PreDestroy
36 | public void destroy() {
37 | //系统运行结束
38 | }
39 |
40 | @Scheduled(cron = "0/60 0/1 * * * ? ")
41 | public void getDataSchedul() {
42 | //每隔10秒执行一次
43 | getData();
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/vo/Result.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.vo;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.util.HashMap;
7 | import java.util.Map;
8 |
9 | @Data
10 | @Accessors(chain = true)
11 | public class Result {
12 |
13 | private Integer code; //响应码
14 | private String message; //响应消息
15 | private Map data = new HashMap<>();
16 |
17 | public static Result ok(){
18 | Result result = new Result();
19 | result.setCode(400);
20 | result.setMessage("成功");
21 | return result;
22 | }
23 |
24 | public static Result error(){
25 | Result result = new Result();
26 | result.setCode(401);
27 | result.setMessage("失败");
28 | return result;
29 | }
30 |
31 | public static Result other(){
32 | Result result = new Result();
33 | result.setCode(402);
34 | result.setMessage("其他");
35 | return result;
36 | }
37 |
38 | public Result data(String key, Object value){
39 | this.data.put(key, value);
40 | return this;
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/com/ninespace/sqlite/vo/UserGroup.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite.vo;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableId;
5 | import com.baomidou.mybatisplus.annotation.TableName;
6 | import lombok.Data;
7 |
8 | import java.util.Date;
9 |
10 | /**
11 | * @program: spring-data-sqlite
12 | * @description:
13 | * @author: hewei
14 | * @date: 2021-10-21 17:42
15 | **/
16 | @Data
17 | @TableName(schema = "main",value = "c_user")
18 | public class UserGroup {
19 |
20 | @TableId(value = "id",type = IdType.AUTO)
21 | private Integer id;
22 | private String name;
23 | private Long phone;
24 | private String addr;
25 | private String gender;
26 | private String intro;
27 | private String profile;
28 | private String email;
29 | private String username;
30 | private String password;
31 | private String type;
32 | private Integer unMessages;
33 | private String newMessages;
34 | private String newTime;
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/resources/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/src/main/resources/.DS_Store
--------------------------------------------------------------------------------
/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | # Tomcat
2 | server:
3 | tomcat:
4 | uri-encoding: UTF-8
5 | port: 9090
6 | #spring
7 | spring:
8 | redis:
9 | database: 0
10 | timeout: 0
11 | # Redis服务器地址
12 | host: 127.0.0.1
13 | # Redis服务器连接端口
14 | port: 6379
15 | # Redis服务器连接密码(默认为空)
16 | password:
17 | # 连接池最大连接数(使用负值表示没有限制)
18 | pool:
19 | max-active: 8
20 | # 连接池最大阻塞等待时间(使用负值表示没有限制)
21 | max-wait: -1
22 | # 连接池中的最大空闲连接
23 | max-idle: 8
24 | # 连接池中的最小空闲连接
25 | min-idle: 0
26 | mvc:
27 | pathmatch:
28 | # 配置策略
29 | matching-strategy: ant-path-matcher
30 | application:
31 | name: spring-data-sqlite
32 | # 指定静态资源的路径
33 | resources:
34 | static-locations: classpath:/static/,classpath:/views/,file:${web.upload},file:${web.ueditorUpload}
35 | datasource:
36 | type: com.alibaba.druid.pool.DruidDataSource
37 | driver-class-name: org.sqlite.JDBC
38 | # 初始化模式: 1.embedded 内存数据库 2.always 始终初始化 3.never 不初始化
39 | initialization-mode: never
40 | schema: classpath:sql/schema.sql
41 | data: classpath:sql/data.sql
42 | # 方式一: 引用外部文件
43 | # url: jdbc:sqlite:D:/eclipse/xy.db
44 | #方式二: 引用项目中的文件
45 | url: jdbc:sqlite::resource:static/cloud.db
46 | username: root
47 | password: 123456
48 |
49 | # MyBatisPlus配置
50 | mybatis-plus:
51 | configuration:
52 | log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
53 | map-underscore-to-camel-case: false
54 | mapper-locations:
55 | - classpath:mapper/**/*.xml
56 | type-aliases-package: com.ninespace.sqlite.model
57 | #config-location: classpath:mybatis.xml
58 | global-config:
59 | db-config:
60 | # 全局默认主键类型
61 | id-type: UUID
62 | # 表名、是否使用下划线命名,默认数据库表使用下划线命名
63 | table-underline: true
64 | # 逻辑已删除值(默认为 1)
65 | logic-delete-value: true
66 | # 逻辑未删除值(默认为 0)
67 | logic-not-delete-value: false
68 | #分页
69 | pagehelper:
70 | helper-dialect: sqlite
71 | reasonable: true
72 | support-methods-arguments: true
73 | params: count=countsql
74 | # sql打印
75 | logging:
76 | level: debug
77 | level.com.ninespace.sqlite.mapper: debug
78 | file:
79 | path: logs/
80 | name: sqlite.log
81 |
82 |
--------------------------------------------------------------------------------
/src/main/resources/mapper/userMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/main/resources/sql/data.sql:
--------------------------------------------------------------------------------
1 | INSERT INTO `c_user` VALUES (1,'test', 17630505717, 'test123', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/07/17/5bbaa5352282a8f7!400x400.jpg', '23339097@qq.com', 'admin', '123123');
2 | INSERT INTO `c_user` VALUES (2,'test01', 17630505716, 'test001', '女', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/90e40f8c47330f70!400x400.jpg', '23339097@qq.com', 'admin01', '123123');
3 | INSERT INTO `c_user` VALUES (3,'test02', 17630505715, 'test002', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/3529e15f0532682c!400x400.jpg', '23339097@qq.com', 'admin02', '123123');
4 | INSERT INTO `c_user` VALUES (4,'test123', 17630505714, 'test123', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/783ea61ff2bbbdaf!400x400.png', '23339097@qq.com', 'admin123', '123123');
5 | INSERT INTO `c_user` VALUES (5,'test9089', 17630505713, 'test001', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/6807ea2da585504c!400x400.jpg', '23339097@qq.com', 'admin9089', '123123');
6 |
7 | INSERT INTO `offline_msg` VALUES (10001,'test9089', 'test001','test001','', 1, 100001, 'https://img2.woyaogexing.com/2022/08/27/6807ea2da585504c!400x400.jpg');
8 |
9 | INSERT INTO `c_group` VALUES (100001,'广场',1,'','这个群聊很懒','https://img2.woyaogexing.com/2022/08/27/6807ea2da585504c!400x400.jpg');
10 |
11 |
--------------------------------------------------------------------------------
/src/main/resources/sql/schema.sql:
--------------------------------------------------------------------------------
1 | /**
2 | 用户表
3 | */
4 | DROP TABLE IF EXISTS `c_user`;
5 | CREATE TABLE 'c_user'(
6 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
7 | 'name' VARCHAR (20), --姓名
8 | 'phone' INTEGER (20), --手机号
9 | 'addr' VARCHAR (50), --地址
10 | 'gender' VARCHAR (10), --性别
11 | 'intro' VARCHAR (50), --简介
12 | 'profile' VARCHAR (50), --头像
13 | 'email' VARCHAR (50), --邮箱
14 | 'username' VARCHAR (20), --用户名
15 | 'password' VARCHAR (20) --密码
16 | );
17 | /**
18 | 用户好友表
19 | */
20 | DROP TABLE IF EXISTS `c_friend`;
21 | CREATE TABLE 'c_friend'(
22 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
23 | 'userId' VARCHAR (20) NULL DEFAULT NULL, --用户id
24 | 'friendId' VARCHAR (20) NULL DEFAULT NULL --接朋友id
25 | );
26 | /**
27 | 群聊表(包含用户)
28 | */
29 | DROP TABLE IF EXISTS `c_group`;
30 | CREATE TABLE 'c_group'(
31 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
32 | 'groupName' VARCHAR (20) NULL DEFAULT NULL,--群聊名称
33 | 'groupOwner' INTEGER NULL DEFAULT NULL,--群聊拥有者
34 | 'members' TEXT,
35 | 'intro' VARCHAR (20) NULL DEFAULT NULL,--群聊名称
36 | 'profile' VARCHAR (20) NULL DEFAULT NULL--群聊名称
37 | );
38 | /**
39 | 用户群聊表
40 | */
41 | -- DROP TABLE IF EXISTS `c_user_group`;
42 | -- CREATE TABLE 'c_user_group'(
43 | -- 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
44 | -- 'userId' VARCHAR (20) NULL DEFAULT NULL, --用户id
45 | -- 'groupId' VARCHAR (20) NULL DEFAULT NULL --群聊id
46 | -- );
47 | /**
48 | 消息缓存表
49 | */
50 | DROP TABLE IF EXISTS `offline_msg`;
51 | CREATE TABLE 'offline_msg'(
52 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
53 | 'fromId' VARCHAR (20) NULL DEFAULT NULL, --发送者id
54 | 'toId' VARCHAR (20) NULL DEFAULT NULL, --接收者id
55 | 'msg' VARCHAR (255) NULL DEFAULT NULL, --消息
56 | 'time' DATE, --时间
57 | 'type' INTEGER NULL DEFAULT NULL, --type
58 | 'groupId' INTEGER, --groupId
59 | 'profile' VARCHAR (20) --接收者id
60 | );
61 |
62 |
--------------------------------------------------------------------------------
/src/main/resources/static/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/src/main/resources/static/.DS_Store
--------------------------------------------------------------------------------
/src/main/resources/static/cloud.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/src/main/resources/static/cloud.db
--------------------------------------------------------------------------------
/src/test/java/com/ninespace/sqlite/SpringDataSqliteApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.ninespace.sqlite;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | @SpringBootTest
7 | class SpringDataSqliteApplicationTests {
8 |
9 | @Test
10 | void contextLoads() {
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/target/classes/application.yml:
--------------------------------------------------------------------------------
1 | # Tomcat
2 | server:
3 | tomcat:
4 | uri-encoding: UTF-8
5 | port: 9090
6 | #spring
7 | spring:
8 | redis:
9 | database: 0
10 | timeout: 0
11 | # Redis服务器地址
12 | host: redis
13 | # Redis服务器连接端口
14 | port: 6379
15 | # Redis服务器连接密码(默认为空)
16 | password:
17 | # 连接池最大连接数(使用负值表示没有限制)
18 | pool:
19 | max-active: 8
20 | # 连接池最大阻塞等待时间(使用负值表示没有限制)
21 | max-wait: -1
22 | # 连接池中的最大空闲连接
23 | max-idle: 8
24 | # 连接池中的最小空闲连接
25 | min-idle: 0
26 | mvc:
27 | pathmatch:
28 | # 配置策略
29 | matching-strategy: ant-path-matcher
30 | application:
31 | name: spring-data-sqlite
32 | # 指定静态资源的路径
33 | resources:
34 | static-locations: classpath:/static/,classpath:/views/,file:${web.upload},file:${web.ueditorUpload}
35 | datasource:
36 | type: com.alibaba.druid.pool.DruidDataSource
37 | driver-class-name: org.sqlite.JDBC
38 | # 初始化模式: 1.embedded 内存数据库 2.always 始终初始化 3.never 不初始化
39 | initialization-mode: never
40 | schema: classpath:sql/schema.sql
41 | data: classpath:sql/data.sql
42 | # 方式一: 引用外部文件
43 | # url: jdbc:sqlite:D:/eclipse/xy.db
44 | #方式二: 引用项目中的文件
45 | url: jdbc:sqlite::resource:static/cloud.db
46 | username: root
47 | password: 123456
48 |
49 | # MyBatisPlus配置
50 | mybatis-plus:
51 | configuration:
52 | log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
53 | map-underscore-to-camel-case: false
54 | mapper-locations:
55 | - classpath:mapper/**/*.xml
56 | type-aliases-package: com.ninespace.sqlite.model
57 | #config-location: classpath:mybatis.xml
58 | global-config:
59 | db-config:
60 | # 全局默认主键类型
61 | id-type: UUID
62 | # 表名、是否使用下划线命名,默认数据库表使用下划线命名
63 | table-underline: true
64 | # 逻辑已删除值(默认为 1)
65 | logic-delete-value: true
66 | # 逻辑未删除值(默认为 0)
67 | logic-not-delete-value: false
68 | #分页
69 | pagehelper:
70 | helper-dialect: sqlite
71 | reasonable: true
72 | support-methods-arguments: true
73 | params: count=countsql
74 | # sql打印
75 | logging:
76 | level: debug
77 | level.com.ninespace.sqlite.mapper: debug
78 | file:
79 | path: logs/
80 | name: sqlite.log
81 |
82 |
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/SpringDataSqliteApplication.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/SpringDataSqliteApplication.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/configuration/CorsConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/configuration/CorsConfig.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/configuration/Knife4jConfiguration.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/configuration/Knife4jConfiguration.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/configuration/RedisConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/configuration/RedisConfig.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/configuration/WebSocketConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/configuration/WebSocketConfig.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/configuration/WebSocketServer.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/configuration/WebSocketServer.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/controller/FriendController.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/controller/FriendController.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/controller/GroupController.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/controller/GroupController.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/controller/MessageController.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/controller/MessageController.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/controller/UserController.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/controller/UserController.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/entity/Friend.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/entity/Friend.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/entity/Group.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/entity/Group.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/entity/OfflineMsg.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/entity/OfflineMsg.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/entity/User.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/entity/User.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/mapper/FriendMapper.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/mapper/FriendMapper.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/mapper/GroupMapper.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/mapper/GroupMapper.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/mapper/OfflineMsgMapper.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/mapper/OfflineMsgMapper.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/mapper/UserMapper.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/mapper/UserMapper.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/FriendService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/FriendService.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/GroupService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/GroupService.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/OfflineMsgService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/OfflineMsgService.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/UserService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/UserService.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/impl/FriendServiceImpl.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/impl/FriendServiceImpl.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/impl/GroupServiceImpl.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/impl/GroupServiceImpl.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/impl/OfflineMsgServiceImpl.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/impl/OfflineMsgServiceImpl.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/service/impl/UserServiceImpl.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/service/impl/UserServiceImpl.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/task/GetRedisData.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/task/GetRedisData.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/util/RedisUtil.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/util/RedisUtil.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/vo/Result.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/vo/Result.class
--------------------------------------------------------------------------------
/target/classes/com/ninespace/sqlite/vo/UserGroup.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/com/ninespace/sqlite/vo/UserGroup.class
--------------------------------------------------------------------------------
/target/classes/mapper/userMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/target/classes/sql/data.sql:
--------------------------------------------------------------------------------
1 | INSERT INTO `c_user` VALUES (1,'test', 17630505717, 'test123', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/07/17/5bbaa5352282a8f7!400x400.jpg', '23339097@qq.com', 'admin', '123123');
2 | INSERT INTO `c_user` VALUES (2,'test01', 17630505716, 'test001', '女', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/90e40f8c47330f70!400x400.jpg', '23339097@qq.com', 'admin01', '123123');
3 | INSERT INTO `c_user` VALUES (3,'test02', 17630505715, 'test002', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/3529e15f0532682c!400x400.jpg', '23339097@qq.com', 'admin02', '123123');
4 | INSERT INTO `c_user` VALUES (4,'test123', 17630505714, 'test123', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/783ea61ff2bbbdaf!400x400.png', '23339097@qq.com', 'admin123', '123123');
5 | INSERT INTO `c_user` VALUES (5,'test9089', 17630505713, 'test001', '男', '这个人很懒没有留下简介', 'https://img2.woyaogexing.com/2022/08/27/6807ea2da585504c!400x400.jpg', '23339097@qq.com', 'admin9089', '123123');
6 |
7 | INSERT INTO `offline_msg` VALUES (10001,'test9089', 'test001','test001','', 1, 100001, 'https://img2.woyaogexing.com/2022/08/27/6807ea2da585504c!400x400.jpg');
8 |
9 | INSERT INTO `c_group` VALUES (100001,'广场',1,'','这个群聊很懒','https://img2.woyaogexing.com/2022/08/27/6807ea2da585504c!400x400.jpg');
10 |
11 |
--------------------------------------------------------------------------------
/target/classes/sql/schema.sql:
--------------------------------------------------------------------------------
1 | /**
2 | 用户表
3 | */
4 | DROP TABLE IF EXISTS `c_user`;
5 | CREATE TABLE 'c_user'(
6 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
7 | 'name' VARCHAR (20), --姓名
8 | 'phone' INTEGER (20), --手机号
9 | 'addr' VARCHAR (50), --地址
10 | 'gender' VARCHAR (10), --性别
11 | 'intro' VARCHAR (50), --简介
12 | 'profile' VARCHAR (50), --头像
13 | 'email' VARCHAR (50), --邮箱
14 | 'username' VARCHAR (20), --用户名
15 | 'password' VARCHAR (20) --密码
16 | );
17 | /**
18 | 用户好友表
19 | */
20 | DROP TABLE IF EXISTS `c_friend`;
21 | CREATE TABLE 'c_friend'(
22 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
23 | 'userId' VARCHAR (20) NULL DEFAULT NULL, --用户id
24 | 'friendId' VARCHAR (20) NULL DEFAULT NULL --接朋友id
25 | );
26 | /**
27 | 群聊表(包含用户)
28 | */
29 | DROP TABLE IF EXISTS `c_group`;
30 | CREATE TABLE 'c_group'(
31 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
32 | 'groupName' VARCHAR (20) NULL DEFAULT NULL,--群聊名称
33 | 'groupOwner' INTEGER NULL DEFAULT NULL,--群聊拥有者
34 | 'members' TEXT,
35 | 'intro' VARCHAR (20) NULL DEFAULT NULL,--群聊名称
36 | 'profile' VARCHAR (20) NULL DEFAULT NULL--群聊名称
37 | );
38 | /**
39 | 用户群聊表
40 | */
41 | -- DROP TABLE IF EXISTS `c_user_group`;
42 | -- CREATE TABLE 'c_user_group'(
43 | -- 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
44 | -- 'userId' VARCHAR (20) NULL DEFAULT NULL, --用户id
45 | -- 'groupId' VARCHAR (20) NULL DEFAULT NULL --群聊id
46 | -- );
47 | /**
48 | 消息缓存表
49 | */
50 | DROP TABLE IF EXISTS `offline_msg`;
51 | CREATE TABLE 'offline_msg'(
52 | 'id' INTEGER PRIMARY KEY AUTOINCREMENT, --主键
53 | 'fromId' VARCHAR (20) NULL DEFAULT NULL, --发送者id
54 | 'toId' VARCHAR (20) NULL DEFAULT NULL, --接收者id
55 | 'msg' VARCHAR (255) NULL DEFAULT NULL, --消息
56 | 'time' DATE, --时间
57 | 'type' INTEGER NULL DEFAULT NULL, --type
58 | 'groupId' INTEGER, --groupId
59 | 'profile' VARCHAR (20) --接收者id
60 | );
61 |
62 |
--------------------------------------------------------------------------------
/target/classes/static/cloud.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/classes/static/cloud.db
--------------------------------------------------------------------------------
/target/maven-archiver/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven
2 | #Thu Sep 29 15:41:03 CST 2022
3 | groupId=com.ninespace
4 | artifactId=sqlite
5 | version=0.0.1-SNAPSHOT
6 |
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst:
--------------------------------------------------------------------------------
1 | com/ninespace/sqlite/SpringDataSqliteApplication.class
2 | com/ninespace/sqlite/controller/UserController.class
3 | com/ninespace/sqlite/mapper/UserMapper.class
4 |
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst:
--------------------------------------------------------------------------------
1 | com/ninespace/sqlite/SpringDataSqliteApplicationTests.class
2 |
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | /Users/apple/Documents/JavaPrograme/Ice-chat/src/test/java/com/ninespace/sqlite/SpringDataSqliteApplicationTests.java
2 |
--------------------------------------------------------------------------------
/target/sqlite-0.0.1-SNAPSHOT.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/sqlite-0.0.1-SNAPSHOT.jar
--------------------------------------------------------------------------------
/target/sqlite-0.0.1-SNAPSHOT.jar.original:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/sqlite-0.0.1-SNAPSHOT.jar.original
--------------------------------------------------------------------------------
/target/test-classes/com/ninespace/sqlite/SpringDataSqliteApplicationTests.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thecosy/Ice-chat/499034728e53b6a8fbf9ef22e74b07c9a39c3185/target/test-classes/com/ninespace/sqlite/SpringDataSqliteApplicationTests.class
--------------------------------------------------------------------------------