├── pages
├── .DS_Store
├── publish
│ └── publish.vue
└── index
│ └── index.vue
├── static
├── .DS_Store
├── index
│ ├── like.png
│ ├── .DS_Store
│ ├── 60x60.png
│ ├── camera.png
│ ├── islike.png
│ ├── liked.png
│ ├── comment.png
│ ├── test
│ │ ├── bear.jpg
│ │ ├── bgi.jpg
│ │ ├── bgi02.jpg
│ │ ├── pig-01.jpg
│ │ ├── pig-02.jpg
│ │ ├── pig-03.jpg
│ │ ├── pig-04.jpg
│ │ ├── pig-05.jpg
│ │ ├── pig-06.jpg
│ │ ├── pig-07.jpg
│ │ ├── pig-08.jpg
│ │ ├── pig-09.jpg
│ │ ├── test1.jpg
│ │ ├── test2.jpg
│ │ ├── test3.jpg
│ │ ├── Netease.png
│ │ ├── header01.jpg
│ │ ├── header02.jpg
│ │ ├── header03.jpg
│ │ ├── header04.jpg
│ │ ├── header05.jpg
│ │ └── header06.jpg
│ └── find-album-reflash-icon.png
└── fonts
│ ├── iconfont.ttf
│ ├── HYQiHeiX1-45W.ttf
│ ├── HYQiHeiX1-55W.ttf
│ ├── taobao_global.ttf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ └── fontawesome-webfont.woff2
├── components
├── .DS_Store
└── im-chat
│ ├── messageshow.vue
│ └── chatinput.vue
├── README.md
├── main.js
├── pages.json
├── uni.scss
├── common
├── image.js
├── index
│ ├── index.post.data.js
│ └── index.css
└── uni.css
├── App.vue
└── manifest.json
/pages/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/pages/.DS_Store
--------------------------------------------------------------------------------
/static/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/.DS_Store
--------------------------------------------------------------------------------
/components/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/components/.DS_Store
--------------------------------------------------------------------------------
/static/index/like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/like.png
--------------------------------------------------------------------------------
/static/index/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/.DS_Store
--------------------------------------------------------------------------------
/static/index/60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/60x60.png
--------------------------------------------------------------------------------
/static/index/camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/camera.png
--------------------------------------------------------------------------------
/static/index/islike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/islike.png
--------------------------------------------------------------------------------
/static/index/liked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/liked.png
--------------------------------------------------------------------------------
/static/fonts/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/iconfont.ttf
--------------------------------------------------------------------------------
/static/index/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/comment.png
--------------------------------------------------------------------------------
/static/index/test/bear.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/bear.jpg
--------------------------------------------------------------------------------
/static/index/test/bgi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/bgi.jpg
--------------------------------------------------------------------------------
/static/index/test/bgi02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/bgi02.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-01.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-02.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-03.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-04.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-05.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-06.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-07.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-07.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-08.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-08.jpg
--------------------------------------------------------------------------------
/static/index/test/pig-09.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/pig-09.jpg
--------------------------------------------------------------------------------
/static/index/test/test1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/test1.jpg
--------------------------------------------------------------------------------
/static/index/test/test2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/test2.jpg
--------------------------------------------------------------------------------
/static/index/test/test3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/test3.jpg
--------------------------------------------------------------------------------
/static/fonts/HYQiHeiX1-45W.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/HYQiHeiX1-45W.ttf
--------------------------------------------------------------------------------
/static/fonts/HYQiHeiX1-55W.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/HYQiHeiX1-55W.ttf
--------------------------------------------------------------------------------
/static/fonts/taobao_global.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/taobao_global.ttf
--------------------------------------------------------------------------------
/static/index/test/Netease.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/Netease.png
--------------------------------------------------------------------------------
/static/index/test/header01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/header01.jpg
--------------------------------------------------------------------------------
/static/index/test/header02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/header02.jpg
--------------------------------------------------------------------------------
/static/index/test/header03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/header03.jpg
--------------------------------------------------------------------------------
/static/index/test/header04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/header04.jpg
--------------------------------------------------------------------------------
/static/index/test/header05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/header05.jpg
--------------------------------------------------------------------------------
/static/index/test/header06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/test/header06.jpg
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/static/index/find-album-reflash-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WeChat-Moments/master/static/index/find-album-reflash-icon.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WeChat-Moments
2 |
3 | 基於uni-app開發的仿微信朋友圈,點贊評論 + 回覆評論、圖片預覽、發佈頁、圖片上載、圖片壓縮(app端)、發布頁側滑返回(app端體驗效果最佳)、評論與回覆時輸入框自動定位到當前內容下(導致輸入框閃爍,體驗不佳,待完善,可直接刪除adjust函數第一行的return測試)下拉刷新 + 加載更多
4 |
5 |
6 |
--------------------------------------------------------------------------------
/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App'
3 |
4 | Vue.config.productionTip = false
5 |
6 | App.mpType = 'app'
7 |
8 | const app = new Vue({
9 | ...App
10 | })
11 | app.$mount()
12 |
--------------------------------------------------------------------------------
/pages.json:
--------------------------------------------------------------------------------
1 | {
2 | "pages" : [
3 | //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
4 | {
5 | "path" : "pages/index/index",
6 | "style" : {
7 | "navigationBarTitleText" : "发现",
8 | "enablePullDownRefresh" : true,
9 | "app-plus" : {
10 | "bounce" : "none",
11 | "titleNView" : {
12 | "type" : "transparent",
13 | "buttons" : [
14 | {
15 | "background" : "rgba(255,255,255,0.2)",
16 | "color" : "#696969",
17 | "type" : "none",
18 | "fontSrc" : "/static/fonts/iconfont.ttf",
19 | "text" : "\ue608" //小相机
20 | }
21 | ]
22 | }
23 | }
24 | }
25 | },
26 | {
27 | "path" : "pages/publish/publish",
28 | "style" : {
29 | "navigationBarTitleText" : "发布"
30 | }
31 | }
32 | ],
33 | "globalStyle" : {
34 | "navigationBarTextStyle" : "black",
35 | "navigationBarTitleText" : "uni-app",
36 | "navigationBarBackgroundColor" : "#F8F8F8",
37 | "backgroundColor" : "#F8F8F8"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/uni.scss:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
4 | *
5 | * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
6 | */
7 |
8 | /* 颜色变量 */
9 |
10 | /* 行为相关颜色 */
11 | $uni-color-primary: #007aff;
12 | $uni-color-success: #4cd964;
13 | $uni-color-warning: #f0ad4e;
14 | $uni-color-error: #dd524d;
15 |
16 | /* 文字基本颜色 */
17 | $uni-text-color:#333;//基本色
18 | $uni-text-color-inverse:#fff;//反色
19 | $uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
20 | $uni-text-color-placeholder: #808080;
21 | $uni-text-color-disable:#c0c0c0;
22 |
23 | /* 背景颜色 */
24 | $uni-bg-color:#ffffff;
25 | $uni-bg-color-grey:#f8f8f8;
26 | $uni-bg-color-hover:#f1f1f1;//点击状态颜色
27 | $uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
28 |
29 | /* 边框颜色 */
30 | $uni-border-color:#c8c7cc;
31 |
32 | /* 尺寸变量 */
33 |
34 | /* 文字尺寸 */
35 | $uni-font-size-sm:24upx;
36 | $uni-font-size-base:28upx;
37 | $uni-font-size-lg:32upx;
38 |
39 | /* 图片尺寸 */
40 | $uni-img-size-sm:40upx;
41 | $uni-img-size-base:52upx;
42 | $uni-img-size-lg:80upx;
43 |
44 | /* Border Radius */
45 | $uni-border-radius-sm: 4upx;
46 | $uni-border-radius-base: 6upx;
47 | $uni-border-radius-lg: 12upx;
48 | $uni-border-radius-circle: 50%;
49 |
50 | /* 水平间距 */
51 | $uni-spacing-row-sm: 10px;
52 | $uni-spacing-row-base: 20upx;
53 | $uni-spacing-row-lg: 30upx;
54 |
55 | /* 垂直间距 */
56 | $uni-spacing-col-sm: 8upx;
57 | $uni-spacing-col-base: 16upx;
58 | $uni-spacing-col-lg: 24upx;
59 |
60 | /* 透明度 */
61 | $uni-opacity-disabled: 0.3; // 组件禁用态的透明度
62 |
63 | /* 文章场景相关 */
64 | $uni-color-title: #2C405A; // 文章标题颜色
65 | $uni-font-size-title:40upx;
66 | $uni-color-subtitle: #555555; // 二级标题颜色
67 | $uni-font-size-subtitle:36upx;
68 | $uni-color-paragraph: #3F536E; // 文章段落颜色
69 | $uni-font-size-paragraph:30upx;
--------------------------------------------------------------------------------
/common/image.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 使用plus.zip.compressImage压缩,目前仅支持App端
3 | */
4 |
5 |
6 | let images = [];//压缩后的图片集合
7 | let max_width = 500;//若宽度大于此尺寸,触发压缩,否则使用原图,可自行修改
8 |
9 | /**
10 | * 接收图片集合
11 | */
12 | async function compress(_images, _fun) {
13 | for (let i = 0; i < _images.length; i++) {//循环单张压缩
14 | var compressd_image = await _compress(_images[i])
15 | images.push(compressd_image);
16 | }
17 | _fun && _fun(images);
18 | images = [];//压缩结束重置images,准备下次压缩
19 | }
20 |
21 | /**
22 | * 菜鸟请大神教我如何优化QAQ~
23 | */
24 | async function _compress(_image) {
25 |
26 | var last4chars = _image.slice(-4);
27 | if (plus.os.name == 'Android') { //安卓下plus.zip.compressImage只支持jpeg/jpg/png
28 | if (!~last4chars.indexOf('jpg') && !~last4chars.indexOf('png') && !~last4chars.indexOf('jpeg')) {
29 | return _image;
30 | }
31 | }
32 |
33 | var image_info = await get_image_info(_image);
34 | if (image_info.width < max_width) { //小于800不压缩
35 | return _image;
36 | }
37 |
38 | return new Promise((resolve, reject) => {
39 | plus.zip.compressImage({
40 | src: _image,//原始图片的路径
41 | dst: _image,//压缩转换目标图片的路径(为了省事这里使用原路径)
42 | overwrite: true,//使用原文件名并覆盖,如果想将原文件保留,并和压缩后图片同时上传,需要改为false,并修改dst
43 | quality: 100,//1-100,压缩后质量,越低图片占用空间越小,越模糊
44 | width: max_width+'px',//这里先写死800;height默认为auto,即根据width与源图宽的缩放比例计算
45 | },
46 | (res) => {
47 | resolve(res.target)
48 | },
49 | (e) => {
50 | reject(e);
51 | }
52 | )
53 |
54 | })
55 |
56 |
57 | }
58 |
59 | function get_image_info(_image) {
60 | return new Promise((resolve, reject) => {
61 | uni.getImageInfo({
62 | src: _image,
63 | success: res => {
64 | resolve(res);
65 | }
66 | })
67 | })
68 | }
69 |
70 | export default {
71 | compress
72 | }
73 |
--------------------------------------------------------------------------------
/App.vue:
--------------------------------------------------------------------------------
1 |
14 |
15 |
79 |
--------------------------------------------------------------------------------
/components/im-chat/messageshow.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | {{message.content}}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 |
93 |
--------------------------------------------------------------------------------
/common/index/index.post.data.js:
--------------------------------------------------------------------------------
1 | export default [{
2 | "post_id": '1',
3 | "uid": 1,
4 | "username": "下辈子好好过",
5 | "header_image": "/static/index/test/header03.jpg",
6 | "content": {
7 | "text": "我总是喜欢上那些不会喜欢上我这种人的人。",
8 | "images": ["/static/index/test/test3.jpg"]
9 | },
10 | "islike": 0,
11 | "like": [{
12 | "uid": 2,
13 | "username": "小李子,"
14 | },
15 | {
16 | "uid": 3,
17 | "username": "小张子"
18 | }
19 | ],
20 | "comments": {
21 | "total": 2,
22 | "comment": [{
23 | "uid": 2,
24 | "username": '知',
25 | "content": "我的那朵玫瑰,别人会以为她和你们一样,但她单独一朵,就胜过你们所有。因为,她是我浇灌的。因为,她是我放在花罩中的。因为,她是我用屏风保护起来的。因为,她身上的毛毛虫,除了两三条要留着变蝴蝶,其他的,都是我除掉的。因为,我倾听过她的哀怨,她的吹嘘,有时甚至是她的沉默。"
26 | },
27 | {
28 | "uid": 3,
29 | "username": '小虎',
30 | "content": "一起出去好吗?"
31 | }
32 | ]
33 | },
34 | "timestamp": "5分钟前"
35 | },
36 | {
37 | "post_id": 2,
38 | "uid": 1,
39 | "username": "菁英公寓-打造属于你的私密空间 小吴",
40 | "header_image": "/static/index/test/header04.jpg",
41 | "content": {
42 | "text": "租房:东环朝南\n\r2室大衣柜\n\r燃气热水器\n\r5楼采光充足\n\r随时入住",
43 | "images": [
44 | "/static/index/test/pig-01.jpg",
45 | "/static/index/test/pig-02.jpg",
46 | "/static/index/test/pig-03.jpg",
47 | "/static/index/test/pig-04.jpg",
48 | "/static/index/test/pig-05.jpg",
49 | "/static/index/test/pig-06.jpg",
50 | "/static/index/test/pig-07.jpg",
51 | "/static/index/test/pig-08.jpg",
52 | "/static/index/test/pig-09.jpg"
53 | ]
54 | },
55 | "islike": 0,
56 | "like": [{
57 | "uid": 2,
58 | "username": "小王子,"
59 | },
60 | {
61 | "uid": 3,
62 | "username": "张大大"
63 | }
64 | ],
65 | "comments": {
66 | "total": 2,
67 | "comment": [{
68 | "uid": 2,
69 | "username": '小虎',
70 | "content": "吃错药了!"
71 | },
72 | {
73 | "uid": 3,
74 | "username": '小狼',
75 | "content": "霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍!"
76 | }
77 | ]
78 | },
79 | "timestamp": "1小时前"
80 | },
81 | {
82 | "post_id": 2,
83 | "uid": 1,
84 | "username": "BSK 必胜客新苏 小乐",
85 | "header_image": "/static/index/test/header05.jpg",
86 | "content": {
87 | "text": "美食花样多,诱人如北北;迎来小宇宙,幸福两行泪[喵喵]这可是小必的心声啊~",
88 | "images": ["/static/index/test/header01.jpg", "/static/index/test/header01.jpg",
89 | "/static/index/test/header01.jpg", "/static/index/test/header01.jpg"
90 | ]
91 | },
92 | "islike": 0,
93 | "like": [{
94 | "uid": 2,
95 | "username": "小王子,"
96 | },
97 | {
98 | "uid": 3,
99 | "username": "张大大"
100 | }
101 | ],
102 | "comments": {
103 | "total": 2,
104 | "comment": [{
105 | "uid": 2,
106 | "username": '小虎',
107 | "content": "吃错药了!"
108 | },
109 | {
110 | "uid": 3,
111 | "username": '小狼',
112 | "content": "霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍霍!"
113 | }
114 | ]
115 | },
116 | "timestamp": "7小时前"
117 | }
118 | ]
119 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "uni-app-moments",
3 | "appid" : "",
4 | "description" : "",
5 | "versionName" : "1.2.1",
6 | "versionCode" : 121,
7 | "transformPx" : false,
8 | "app-plus" : {
9 | "usingComponents" : true, //是否启用`自定义组件模式`,为true表示新的`自定义组件模式` ,否则为`template模板模式`
10 |
11 | /* 5+App特有相关 */
12 | "splashscreen" : {
13 | "alwaysShowBeforeRender" : true,
14 | "waiting" : true,
15 | "autoclose" : true,
16 | "delay" : 0
17 | },
18 | "modules" : {},
19 | /* 模块配置 */
20 | "distribute" : {
21 | /* 应用发布信息 */
22 | "android" : {
23 | /* android打包配置 */
24 | "permissions" : [
25 | "",
26 | "",
27 | "",
28 | "",
29 | "",
30 | "",
31 | "",
32 | "",
33 | "",
34 | "",
35 | "",
36 | "",
37 | "",
38 | "",
39 | "",
40 | "",
41 | "",
42 | "",
43 | "",
44 | "",
45 | "",
46 | ""
47 | ]
48 | },
49 | "ios" : {},
50 | /* ios打包配置 */
51 | "sdkConfigs" : {}
52 | }
53 | },
54 | /* SDK配置 */
55 | "quickapp" : {},
56 | /* 快应用特有相关 */
57 | "mp-weixin" : {
58 | /* 小程序特有相关 */
59 | "appid" : "",
60 | "setting" : {
61 | "urlCheck" : true
62 | }
63 | },
64 | "h5" : {
65 | "title" : "WeChat-Moments",
66 | "domain" : ""
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/components/im-chat/chatinput.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
69 |
70 |
128 |
--------------------------------------------------------------------------------
/common/index/index.css:
--------------------------------------------------------------------------------
1 | .liked {
2 | /* display: inline-block; */
3 | position: relative;
4 | margin-right: 10upx;
5 | width: 34upx;
6 | height: 34upx;
7 | }
8 |
9 | .post-username {
10 | font-size: 32upx;
11 | font-weight: 600;
12 | color: var(--blue);
13 | }
14 |
15 | .gallery_img {
16 | width: 100%;
17 | height: 100%
18 | }
19 |
20 | .header {
21 | width: 100%;
22 | height: 100%;
23 | z-index: 10;
24 | border-radius: 40upx;
25 | }
26 |
27 | .publish {
28 | position: absolute;
29 | top: 20upx;
30 | right: 20upx;
31 | /* z-index: 9999; */
32 | }
33 |
34 | .post_header {
35 | width: 90upx !important;
36 | height: 90upx !important;
37 | border-radius: 10upx;
38 | margin-top: 8upx;
39 | }
40 |
41 | #moments {
42 | background: var(--Default-background-color);
43 | }
44 |
45 | #moments .home-pic {
46 | width: 100%;
47 | /* margin-top: -150upx; */
48 | position: relative;
49 | height: 500upx;
50 | z-index: 5;
51 | background: url(../../static/index/test/bgi02.jpg) no-repeat center center;
52 | background-size: cover;
53 | margin-bottom: 50upx
54 | }
55 |
56 | #moments .home-pic-base {
57 | position: absolute;
58 | left: -60upx;
59 | bottom: -40upx;
60 | width: 100%;
61 | height: 160upx;
62 | padding: 0 30upx;
63 | }
64 |
65 | #moments .home-pic-base .top-pic {
66 | width: 360upx;
67 | height: 360upx;
68 | border-radius: 40upx;
69 | -webkit-transform: scale(0.5);
70 | -ms-transform: scale(0.5);
71 | transform: scale(0.5);
72 | -webkit-transform-origin: 100% 0%;
73 | -ms-transform-origin: 100% 0%;
74 | transform-origin: 100% 0%;
75 | background-color: var(--Highlight-background-color);
76 | float: right
77 | }
78 |
79 | #moments .home-pic-base .top-name {
80 | position: absolute;
81 | /* left: 20px; */
82 | right: 240upx;
83 | top: 30upx;
84 | font-size: 32upx;
85 | font-weight: 600;
86 | text-align: right;
87 | color: var(--text-color);
88 | overflow: hidden
89 | }
90 |
91 | #moments .moments__post {
92 | display: block;
93 | border-bottom: 1px solid var(--border-color);
94 | padding: 30upx 20upx;
95 | position: relative;
96 | display: -webkit-box;
97 | display: -webkit-flex;
98 | display: flex;
99 | }
100 |
101 | #moments .moments__post::before {
102 | content: none
103 | }
104 |
105 | #moments .moments__post .post_right {
106 | font-size: 32upx;
107 | display: table-cell;
108 | padding-left: 20upx;
109 | width: 100%;
110 | }
111 | #moments .moments__post .post_right .paragraph{
112 | margin: 10upx 0upx;
113 | color: var(--text-color);
114 | font-size: 28upx;
115 | }
116 |
117 | /* #moments .moments__post .post_right .paragraphExtender {margin: 5px auto;display: -webkit-box;display: -webkit-flex;display: -ms-flexbox;display: flex} */
118 | #moments .moments__post .title {
119 | color: var(--blue)
120 | }
121 |
122 | #moments .moments__post .thumbnails {
123 | width: 100%;
124 | display: flex;
125 | flex-wrap: wrap;
126 | /* display: -webkit-box;display: -webkit-flex;display: -ms-flexbox; */
127 | /* -webkit-flex-wrap: wrap;-ms-flex-wrap: wrap; */
128 | }
129 |
130 | #moments .moments__post .thumbnails .thumbnail {
131 | width: 30%;
132 | height: 180upx;
133 | margin: 4upx;
134 | background: #757575;
135 | overflow: hidden;
136 | }
137 |
138 | .my-gallery {
139 | width: 250upx;
140 | height: 400upx;
141 | margin: 4upx;
142 | background: #757575;
143 | overflow: hidden
144 | }
145 |
146 | #moments .moments__post .toolbar {
147 | position: relative;
148 | top: 10upx;
149 | display: -webkit-box;
150 | display: -webkit-flex;
151 | display: -ms-flexbox;
152 | display: flex;
153 | -webkit-box-align: center;
154 | -webkit-align-items: center;
155 | -ms-flex-align: center;
156 | align-items: center
157 | }
158 |
159 | #moments .moments__post .toolbar .timestamp {
160 | color: #757575;
161 | font-size: 22upx;
162 | }
163 |
164 | #moments .moments__post .like {
165 | width: auto;
166 | height: auto;
167 | position: absolute;
168 | right: 60upx;
169 | display: flex;
170 | align-items: center;
171 | }
172 | @media (prefers-color-scheme: dark) {
173 | #moments .moments__post .like,.comment image{
174 | -webkit-filter: brightness(0) invert(1);
175 | filter: brightness(0) invert(1);
176 | }
177 | }
178 |
179 | #moments .moments__post .comment {
180 | width: auto;
181 | height: auto;
182 | position: absolute;
183 | right: 0upx;
184 | display: flex;
185 | align-items: center;
186 | }
187 |
188 | #moments .moments__post .toolbar image {
189 | padding-left: 20upx;
190 | width: 40upx;
191 | height: 40upx;
192 | }
193 |
194 | .post-footer {
195 | margin-top: 30upx;
196 | padding: 10upx 30upx;
197 | background-color: var(--Highlight-background-color);
198 | border-radius: 10upx;
199 | }
200 |
201 | #moments .moments__post .footer_content {
202 | padding: 10upx 0upx;
203 | position: relative;
204 | display: -webkit-box;
205 | display: -webkit-flex;
206 | display: -ms-flexbox;
207 | display: flex;
208 | -webkit-box-align: center;
209 | -webkit-align-items: center;
210 | -ms-flex-align: center;
211 | align-items: center;
212 | -webkit-flex-wrap: wrap;
213 | -ms-flex-wrap: wrap;
214 | flex-wrap: wrap;
215 | }
216 |
217 | #moments .moments__post .footer_content .nickname {
218 | color: var(--blue);
219 | font-size: 24upx
220 | }
221 |
222 | #moments .moments__post .footer_content .comment-nickname {
223 | color: var(--blue);
224 | font-size: 24upx
225 | }
226 |
227 | #moments .moments__post .footer_content .comment-content {
228 | color: var(--text-color);
229 | font-size: 24upx
230 | }
231 | #moments .moments__post .footer_content .comment-content span{
232 | color: var(--text-color);
233 | }
234 | .foot {
235 | position: fixed;
236 | width: 100%;
237 | height: 90upx;
238 | min-height: 90upx;
239 | left: 0upx;
240 | bottom: 0upx;
241 | overflow: hidden;
242 | }
243 |
--------------------------------------------------------------------------------
/pages/publish/publish.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
35 |
36 |
37 |
38 |
215 |
216 |
259 |
--------------------------------------------------------------------------------
/pages/index/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Semporia
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | {{post.username}}
20 | {{post.content.text}}
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | {{post.timestamp}}
30 |
31 |
32 |
33 |
36 |
37 |
38 |
47 |
48 |
49 |
50 |
51 |
55 | {{loadMoreText}}
56 |
57 |
58 |
59 |
60 |
262 |
263 |
266 |
--------------------------------------------------------------------------------
/common/uni.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: uniicons;
3 | font-weight: normal;
4 | font-style: normal;
5 | src: url('https://img-cdn-qiniu.dcloud.net.cn/fonts/uni.ttf') format('truetype');
6 | }
7 |
8 | /*通用 */
9 | view{
10 | font-size:28upx;
11 | line-height:1.8;
12 | }
13 | progress, checkbox-group{
14 | width: 100%;
15 | }
16 | form {
17 | width: 100%;
18 | }
19 | .uni-flex {
20 | display: flex;
21 | flex-direction: row;
22 | }
23 | .uni-flex-item {
24 | flex: 1;
25 | }
26 | .uni-row {
27 | flex-direction: row;
28 | }
29 | .uni-column {
30 | flex-direction: column;
31 | }
32 | .uni-link{
33 | color:#576B95;
34 | font-size:26upx;
35 | }
36 | .uni-center{
37 | text-align:center;
38 | }
39 | .uni-inline-item{
40 | display: flex;
41 | flex-direction: row;
42 | align-items:center;
43 | }
44 | .uni-inline-item text{
45 | margin-right: 20upx;
46 | }
47 | .uni-inline-item text:last-child{
48 | margin-right: 0upx;
49 | margin-left: 20upx;
50 | }
51 |
52 | /* page */
53 | .uni-page-head{
54 | padding:35upx;
55 | text-align: center;
56 | }
57 | .uni-page-head-title {
58 | display: inline-block;
59 | padding: 0 40upx;
60 | font-size: 30upx;
61 | height: 88upx;
62 | line-height: 88upx;
63 | color: #BEBEBE;
64 | box-sizing: border-box;
65 | border-bottom: 2upx solid #D8D8D8;
66 | }
67 | .uni-page-body {
68 | width: 100%;
69 | flex-grow: 1;
70 | overflow-x: hidden;
71 | }
72 | .uni-padding-wrap{
73 | width:690upx;
74 | padding:0 30upx;
75 | }
76 | .uni-word {
77 | text-align: center;
78 | padding:200upx 100upx;
79 | }
80 | .uni-title {
81 | font-size:30upx;
82 | font-weight:500;
83 | padding:20upx 0;
84 | line-height:1.5;
85 | }
86 | .uni-text{
87 | font-size:28upx;
88 | }
89 | .uni-title text{
90 | font-size:24upx;
91 | color:#888;
92 | }
93 |
94 | .uni-text-gray{
95 | color: #ccc;
96 | }
97 | .uni-text-small {
98 | font-size:24upx;
99 | }
100 | .uni-common-mb{
101 | margin-bottom:30upx;
102 | }
103 | .uni-common-pb{
104 | padding-bottom:30upx;
105 | }
106 | .uni-common-pl{
107 | padding-left:30upx;
108 | }
109 | .uni-common-mt{
110 | margin-top:30upx;
111 | }
112 | /* 背景色 */
113 | .uni-bg-red{
114 | background:#F76260; color:#FFF;
115 | }
116 | .uni-bg-green{
117 | background:#09BB07; color:#FFF;
118 | }
119 | .uni-bg-blue{
120 | background:#007AFF; color:#FFF;
121 | }
122 | /* 标题 */
123 | .uni-h1 {font-size: 80upx; font-weight:700;}
124 | .uni-h2 {font-size: 60upx; font-weight:700;}
125 | .uni-h3 {font-size: 48upx; font-weight:700;}
126 | .uni-h4 {font-size: 36upx; font-weight:700;}
127 | .uni-h5 {font-size: 28upx; color: #8f8f94;}
128 | .uni-h6 {font-size: 24upx; color: #8f8f94;}
129 | .uni-bold{font-weight:bold;}
130 |
131 | /* 文本溢出隐藏 */
132 | .uni-ellipsis {overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
133 |
134 | /* 竖向百分百按钮 */
135 | .uni-btn-v{
136 | padding:10upx 0;
137 | }
138 | .uni-btn-v button{margin:20upx 0;}
139 |
140 | /* 表单 */
141 | .uni-form-item{
142 | display:flex;
143 | width:100%;
144 | padding:10upx 0;
145 | }
146 | .uni-form-item .title{
147 | padding:10upx 25upx;
148 | }
149 | .uni-label {
150 | width: 210upx;
151 | word-wrap: break-word;
152 | word-break: break-all;
153 | text-indent:20upx;
154 | }
155 | .uni-input {
156 | height: 50upx;
157 | padding: 15upx 25upx;
158 | line-height:50upx;
159 | font-size:28upx;
160 | background:#FFF;
161 | flex: 1;
162 | }
163 | radio-group, checkbox-group{
164 | width:100%;
165 | }
166 | radio-group label, checkbox-group label{
167 | padding-right:20upx;
168 | }
169 | .uni-form-item .with-fun{
170 | display:flex;
171 | flex-wrap:nowrap;
172 | background:#FFFFFF;
173 | }
174 | .uni-form-item .with-fun .uni-icon{
175 | width:40px;
176 | height:80upx;
177 | line-height:80upx;
178 | flex-shrink:0;
179 | }
180 |
181 | /* loadmore */
182 | .uni-loadmore{
183 | height:80upx;
184 | line-height:80upx;
185 | text-align:center;
186 | padding-bottom:30upx;
187 | }
188 | /*数字角标*/
189 | .uni-badge,
190 | .uni-badge-default {
191 | font-family: 'Helvetica Neue', Helvetica, sans-serif;
192 | font-size: 12px;
193 | line-height: 1;
194 | display: inline-block;
195 | padding: 3px 6px;
196 | color: #333;
197 | border-radius: 100px;
198 | background-color: rgba(0, 0, 0, .15);
199 | }
200 | .uni-badge.uni-badge-inverted {
201 | padding: 0 5px 0 0;
202 | color: #929292;
203 | background-color: transparent
204 | }
205 | .uni-badge-primary {
206 | color: #fff;
207 | background-color: #007aff
208 | }
209 | .uni-badge-blue.uni-badge-inverted,
210 | .uni-badge-primary.uni-badge-inverted {
211 | color: #007aff;
212 | background-color: transparent
213 | }
214 | .uni-badge-green,
215 | .uni-badge-success {
216 | color: #fff;
217 | background-color: #4cd964;
218 | }
219 | .uni-badge-green.uni-badge-inverted,
220 | .uni-badge-success.uni-badge-inverted {
221 | color: #4cd964;
222 | background-color: transparent
223 | }
224 | .uni-badge-warning,
225 | .uni-badge-yellow {
226 | color: #fff;
227 | background-color: #f0ad4e
228 | }
229 | .uni-badge-warning.uni-badge-inverted,
230 | .uni-badge-yellow.uni-badge-inverted {
231 | color: #f0ad4e;
232 | background-color: transparent
233 | }
234 | .uni-badge-danger,
235 | .uni-badge-red {
236 | color: #fff;
237 | background-color: #dd524d
238 | }
239 | .uni-badge-danger.uni-badge-inverted,
240 | .uni-badge-red.uni-badge-inverted {
241 | color: #dd524d;
242 | background-color: transparent
243 | }
244 | .uni-badge-purple,
245 | .uni-badge-royal {
246 | color: #fff;
247 | background-color: #8a6de9
248 | }
249 | .uni-badge-purple.uni-badge-inverted,
250 | .uni-badge-royal.uni-badge-inverted {
251 | color: #8a6de9;
252 | background-color: transparent
253 | }
254 |
255 | /*折叠面板 */
256 | .uni-collapse-content {
257 | height: 0;
258 | width: 100%;
259 | overflow: hidden;
260 | }
261 | .uni-collapse-content.uni-active {
262 | height: auto;
263 | }
264 |
265 | /*卡片视图 */
266 | .uni-card {
267 | background: #fff;
268 | border-radius: 8upx;
269 | margin:20upx 0;
270 | position: relative;
271 | box-shadow: 0 2upx 4upx rgba(0, 0, 0, .3);
272 | }
273 | .uni-card-content {
274 | font-size: 30upx;
275 | }
276 | .uni-card-content.image-view{
277 | width: 100%;
278 | margin: 0;
279 | }
280 | .uni-card-content-inner {
281 | position: relative;
282 | padding: 30upx;
283 | }
284 | .uni-card-footer,
285 | .uni-card-header {
286 | position: relative;
287 | display: flex;
288 | min-height: 50upx;
289 | padding: 20upx 30upx;
290 | justify-content: space-between;
291 | align-items: center;
292 | }
293 | .uni-card-header {
294 | font-size: 36upx;
295 | }
296 | .uni-card-footer {
297 | color: #6d6d72;
298 | }
299 | .uni-card-footer:before,
300 | .uni-card-header:after {
301 | position: absolute;
302 | top: 0;
303 | right: 0;
304 | left: 0;
305 | height: 2upx;
306 | content: '';
307 | -webkit-transform: scaleY(.5);
308 | transform: scaleY(.5);
309 | background-color: #c8c7cc;
310 | }
311 | .uni-card-header:after {
312 | top: auto;
313 | bottom: 0;
314 | }
315 | .uni-card-media {
316 | justify-content: flex-start;
317 | }
318 | .uni-card-media-logo {
319 | height: 84upx;
320 | width: 84upx;
321 | margin-right: 20upx;
322 | }
323 | .uni-card-media-body {
324 | height: 84upx;
325 | display: flex;
326 | flex-direction: column;
327 | justify-content: space-between;
328 | align-items: flex-start;
329 | }
330 | .uni-card-media-text-top {
331 | line-height: 36upx;
332 | font-size: 34upx;
333 | }
334 | .uni-card-media-text-bottom {
335 | line-height: 30upx;
336 | font-size: 28upx;
337 | color: #8f8f94;
338 | }
339 | .uni-card-link {
340 | color: #007AFF;
341 | }
342 |
343 | /* 列表 */
344 | .uni-list {
345 | background-color: #FFFFFF;
346 | position: relative;
347 | width: 100%;
348 | display: flex;
349 | flex-direction: column;
350 | }
351 | .uni-list:after {
352 | position: absolute;
353 | z-index: 10;
354 | right: 0;
355 | bottom: 0;
356 | left: 0;
357 | height: 1px;
358 | content: '';
359 | -webkit-transform: scaleY(.5);
360 | transform: scaleY(.5);
361 | background-color: #c8c7cc;
362 | }
363 | .uni-list::before {
364 | position: absolute;
365 | z-index: 10;
366 | right: 0;
367 | top: 0;
368 | left: 0;
369 | height: 1px;
370 | content: '';
371 | -webkit-transform: scaleY(.5);
372 | transform: scaleY(.5);
373 | background-color: #c8c7cc;
374 | }
375 | .uni-list-cell {
376 | position: relative;
377 | display: flex;
378 | flex-direction: row;
379 | justify-content: space-between;
380 | align-items: center;
381 | }
382 | .uni-list-cell-hover {
383 | background-color: #eee;
384 | }
385 | .uni-list-cell-pd {
386 | padding: 22upx 30upx;
387 | }
388 | .uni-list-cell-left {
389 | font-size:28upx;
390 | padding: 0 30upx;
391 | }
392 | .uni-list-cell-db,
393 | .uni-list-cell-right {
394 | flex: 1;
395 | }
396 | .uni-list-cell::after {
397 | position: absolute;
398 | z-index: 3;
399 | right: 0;
400 | bottom: 0;
401 | left: 30upx;
402 | height: 1px;
403 | content: '';
404 | -webkit-transform: scaleY(.5);
405 | transform: scaleY(.5);
406 | background-color: #c8c7cc;
407 | }
408 | .uni-list .uni-list-cell:last-child::after {
409 | height: 0upx;
410 | }
411 | .uni-list-cell-last.uni-list-cell::after {
412 | height: 0upx;
413 | }
414 | .uni-list-cell-divider {
415 | position: relative;
416 | display: flex;
417 | color: #999;
418 | background-color: #f7f7f7;
419 | padding:15upx 20upx;
420 | }
421 | .uni-list-cell-divider::before {
422 | position: absolute;
423 | right: 0;
424 | top: 0;
425 | left: 0;
426 | height: 1px;
427 | content: '';
428 | -webkit-transform: scaleY(.5);
429 | transform: scaleY(.5);
430 | background-color: #c8c7cc;
431 | }
432 | .uni-list-cell-divider::after {
433 | position: absolute;
434 | right: 0;
435 | bottom: 0;
436 | left: 0upx;
437 | height: 1px;
438 | content: '';
439 | -webkit-transform: scaleY(.5);
440 | transform: scaleY(.5);
441 | background-color: #c8c7cc;
442 | }
443 | .uni-list-cell-navigate {
444 | font-size:30upx;
445 | padding: 22upx 30upx;
446 | line-height: 48upx;
447 | position: relative;
448 | display: flex;
449 | box-sizing: border-box;
450 | width: 100%;
451 | flex: 1;
452 | justify-content: space-between;
453 | align-items: center;
454 | }
455 | .uni-list-cell-navigate {
456 | padding-right: 36upx;
457 | }
458 | .uni-navigate-badge {
459 | padding-right: 50upx;
460 | }
461 | .uni-list-cell-navigate.uni-navigate-right:after {
462 | font-family: uniicons;
463 | content: '\e583';
464 | position: absolute;
465 | right: 24upx;
466 | top: 50%;
467 | color: #bbb;
468 | -webkit-transform: translateY(-50%);
469 | transform: translateY(-50%);
470 | }
471 | .uni-list-cell-navigate.uni-navigate-bottom:after {
472 | font-family: uniicons;
473 | content: '\e581';
474 | position: absolute;
475 | right: 24upx;
476 | top: 50%;
477 | color: #bbb;
478 | -webkit-transform: translateY(-50%);
479 | transform: translateY(-50%);
480 | }
481 | .uni-list-cell-navigate.uni-navigate-bottom.uni-active::after {
482 | font-family: uniicons;
483 | content: '\e580';
484 | position: absolute;
485 | right: 24upx;
486 | top: 50%;
487 | color: #bbb;
488 | -webkit-transform: translateY(-50%);
489 | transform: translateY(-50%);
490 | }
491 | .uni-collapse.uni-list-cell {
492 | flex-direction: column;
493 | }
494 | .uni-list-cell-navigate.uni-active {
495 | background: #eee;
496 | }
497 | .uni-list.uni-collapse {
498 | box-sizing: border-box;
499 | height: 0;
500 | overflow: hidden;
501 | }
502 | .uni-collapse .uni-list-cell {
503 | padding-left: 20upx;
504 | }
505 | .uni-collapse .uni-list-cell::after {
506 | left: 52upx;
507 | }
508 | .uni-list.uni-active {
509 | height: auto;
510 | }
511 |
512 | /* 三行列表 */
513 | .uni-triplex-row {
514 | display: flex;
515 | flex: 1;
516 | width: 100%;
517 | box-sizing: border-box;
518 | flex-direction: row;
519 | padding: 22upx 30upx;
520 | }
521 | .uni-triplex-right,
522 | .uni-triplex-left {
523 | display: flex;
524 | flex-direction: column;
525 | }
526 | .uni-triplex-left {
527 | width: 84%;
528 | }
529 | .uni-triplex-left .uni-title{
530 | padding:8upx 0;
531 | }
532 | .uni-triplex-left .uni-text, .uni-triplex-left .uni-text-small{color:#999999;}
533 | .uni-triplex-right {
534 | width: 16%;
535 | text-align: right;
536 | }
537 |
538 | /* 图文列表 */
539 | .uni-media-list {
540 | padding: 22upx 30upx;
541 | box-sizing: border-box;
542 | display: flex;
543 | width: 100%;
544 | flex-direction: row;
545 | }
546 | .uni-navigate-right.uni-media-list {
547 | padding-right: 74upx;
548 | }
549 | .uni-pull-right {
550 | flex-direction: row-reverse;
551 | }
552 | .uni-pull-right>.uni-media-list-logo {
553 | margin-right: 0upx;
554 | margin-left: 20upx;
555 | }
556 | .uni-media-list-logo {
557 | height: 84upx;
558 | width: 84upx;
559 | margin-right: 20upx;
560 | }
561 | .uni-media-list-logo image {
562 | height: 100%;
563 | width: 100%;
564 | }
565 | .uni-media-list-body {
566 | height: 84upx;
567 | display: flex;
568 | flex: 1;
569 | flex-direction: column;
570 | justify-content: space-between;
571 | align-items: flex-start;
572 | overflow: hidden;
573 | }
574 | .uni-media-list-text-top {
575 | width: 100%;
576 | line-height: 36upx;
577 | font-size: 30upx;
578 | }
579 | .uni-media-list-text-bottom {
580 | width: 100%;
581 | line-height: 30upx;
582 | font-size: 26upx;
583 | color: #8f8f94;
584 | }
585 |
586 | /* 九宫格 */
587 | .uni-grid-9 {
588 | background: #f2f2f2;
589 | width: 750upx;
590 | display: flex;
591 | flex-direction: row;
592 | flex-wrap: wrap;
593 | border-top: 2upx solid #eee;
594 | }
595 | .uni-grid-9-item {
596 | width: 250upx;
597 | height: 200upx;
598 | display: flex;
599 | flex-direction: column;
600 | align-items: center;
601 | justify-content: center;
602 | border-bottom: 2upx solid;
603 | border-right: 2upx solid;
604 | border-color: #eee;
605 | box-sizing: border-box;
606 | }
607 | .no-border-right {
608 | border-right: none;
609 | }
610 | .uni-grid-9-image {
611 | width: 100upx;
612 | height: 100upx;
613 | }
614 | .uni-grid-9-text {
615 | width: 250upx;
616 | line-height: 4upx;
617 | height: 40upx;
618 | text-align: center;
619 | font-size: 30upx;
620 | }
621 | .uni-grid-9-item-hover {
622 | background: rgba(0, 0, 0, 0.1);
623 | }
624 |
625 | /* 上传 */
626 | .uni-uploader {
627 | flex: 1;
628 | flex-direction: column;
629 | }
630 | .uni-uploader-head {
631 | display: flex;
632 | flex-direction: row;
633 | justify-content: space-between;
634 | }
635 | .uni-uploader-info {
636 | color: #B2B2B2;
637 | }
638 | .uni-uploader-body {
639 | margin-top: 16upx;
640 | }
641 | .uni-uploader__files {
642 | display: flex;
643 | flex-direction: row;
644 | flex-wrap: wrap;
645 | }
646 | .uni-uploader__file {
647 | margin: 10upx;
648 | width: 210upx;
649 | height: 210upx;
650 | }
651 | .uni-uploader__img {
652 | display: block;
653 | width: 210upx;
654 | height: 210upx;
655 | }
656 | .uni-uploader__input-box {
657 | position: relative;
658 | margin:10upx;
659 | width: 208upx;
660 | height: 208upx;
661 | border: 2upx solid #D9D9D9;
662 | }
663 | .uni-uploader__input-box:before,
664 | .uni-uploader__input-box:after {
665 | content: " ";
666 | position: absolute;
667 | top: 50%;
668 | left: 50%;
669 | -webkit-transform: translate(-50%, -50%);
670 | transform: translate(-50%, -50%);
671 | background-color: #D9D9D9;
672 | }
673 | .uni-uploader__input-box:before {
674 | width: 4upx;
675 | height: 79upx;
676 | }
677 | .uni-uploader__input-box:after {
678 | width: 79upx;
679 | height: 4upx;
680 | }
681 | .uni-uploader__input-box:active {
682 | border-color: #999999;
683 | }
684 | .uni-uploader__input-box:active:before,
685 | .uni-uploader__input-box:active:after {
686 | background-color: #999999;
687 | }
688 | .uni-uploader__input {
689 | position: absolute;
690 | z-index: 1;
691 | top: 0;
692 | left: 0;
693 | width: 100%;
694 | height: 100%;
695 | opacity: 0;
696 | }
697 |
698 | /*问题反馈*/
699 | .feedback-title {
700 | display: flex;
701 | flex-direction: row;
702 | justify-content: space-between;
703 | align-items: center;
704 | padding: 20upx;
705 | color: #8f8f94;
706 | font-size: 28upx;
707 | }
708 | .feedback-star-view.feedback-title {
709 | justify-content: flex-start;
710 | margin: 0;
711 | }
712 | .feedback-quick {
713 | position: relative;
714 | padding-right: 40upx;
715 | }
716 | .feedback-quick:after {
717 | font-family: uniicons;
718 | font-size: 40upx;
719 | content: '\e581';
720 | position: absolute;
721 | right: 0;
722 | top: 50%;
723 | color: #bbb;
724 | -webkit-transform: translateY(-50%);
725 | transform: translateY(-50%);
726 | }
727 | .feedback-body {
728 | background: #fff;
729 | }
730 | .feedback-textare {
731 | height: 200upx;
732 | font-size: 34upx;
733 | line-height: 50upx;
734 | width: 100%;
735 | box-sizing: border-box;
736 | padding: 20upx 30upx 0;
737 | }
738 | .feedback-input {
739 | font-size: 34upx;
740 | height: 50upx;
741 | min-height: 50upx;
742 | padding: 15upx 20upx;
743 | line-height: 50upx;
744 | }
745 | .feedback-uploader {
746 | padding: 22upx 20upx;
747 | }
748 | .feedback-star {
749 | font-family: uniicons;
750 | font-size: 40upx;
751 | margin-left: 6upx;
752 | }
753 | .feedback-star-view {
754 | margin-left: 20upx;
755 | }
756 | .feedback-star:after {
757 | content: '\e408';
758 | }
759 | .feedback-star.active {
760 | color: #FFB400;
761 | }
762 | .feedback-star.active:after {
763 | content: '\e438';
764 | }
765 | .feedback-submit {
766 | background: #007AFF;
767 | color: #FFFFFF;
768 | margin: 20upx;
769 | }
770 |
771 | /* input group */
772 | .uni-input-group {
773 | position: relative;
774 | padding: 0;
775 | border: 0;
776 | background-color: #fff;
777 | }
778 |
779 | .uni-input-group:before {
780 | position: absolute;
781 | top: 0;
782 | right: 0;
783 | left: 0;
784 | height: 2upx;
785 | content: '';
786 | transform: scaleY(.5);
787 | background-color: #c8c7cc;
788 | }
789 |
790 | .uni-input-group:after {
791 | position: absolute;
792 | right: 0;
793 | bottom: 0;
794 | left: 0;
795 | height: 2upx;
796 | content: '';
797 | transform: scaleY(.5);
798 | background-color: #c8c7cc;
799 | }
800 |
801 | .uni-input-row {
802 | position: relative;
803 | display: flex;
804 | flex-direction: row;
805 | font-size:28upx;
806 | padding: 22upx 30upx;
807 | justify-content: space-between;
808 | }
809 |
810 | .uni-input-group .uni-input-row:after {
811 | position: absolute;
812 | right: 0;
813 | bottom: 0;
814 | left: 30upx;
815 | height: 2upx;
816 | content: '';
817 | transform: scaleY(.5);
818 | background-color: #c8c7cc;
819 | }
820 |
821 | .uni-input-row label {
822 | line-height: 70upx;
823 | }
824 |
825 | /* textarea */
826 | .uni-textarea{
827 | width:100%;
828 | background:#FFF;
829 | }
830 | .uni-textarea textarea{
831 | width:96%;
832 | padding:18upx 2%;
833 | line-height:1.6;
834 | font-size:28upx;
835 | height:150upx;
836 | }
837 |
838 | /* tab bar */
839 | .uni-tab-bar {
840 | display: flex;
841 | flex: 1;
842 | flex-direction: column;
843 | overflow: hidden;
844 | height: 100%;
845 | }
846 |
847 | .uni-tab-bar .list {
848 | width: 750upx;
849 | height: 100%;
850 | }
851 |
852 | .uni-swiper-tab {
853 | width: 100%;
854 | white-space: nowrap;
855 | line-height: 100upx;
856 | height: 100upx;
857 | border-bottom: 1px solid #c8c7cc;
858 | }
859 |
860 | .swiper-tab-list {
861 | font-size: 30upx;
862 | width: 150upx;
863 | display: inline-block;
864 | text-align: center;
865 | color: #555;
866 | }
867 |
868 | .uni-tab-bar .active {
869 | color: #007AFF;
870 | }
871 |
872 | .uni-tab-bar .swiper-box {
873 | flex: 1;
874 | width: 100%;
875 | height: calc(100% - 100upx);
876 | }
877 |
878 | .uni-tab-bar-loading{
879 | padding:20upx 0;
880 | }
881 |
882 | /* steps */
883 | .uni-steps{padding:20upx 30upx; flex-grow: 1; display:flex; flex-wrap:wrap;}
884 | .uni-steps view{display:flex; flex-wrap:wrap; float:none;}
885 | .uni-steps .step{width:31.3%; margin:0 1%; flex-wrap:nowrap;}
886 | .uni-steps .step-circle{width:50upx; height:50upx; border-radius:50upx; background:#F1F1F3; justify-content:center; line-height:50upx; flex-shrink:0; margin-right:15upx; color:#666; font-size:28upx;}
887 | .uni-steps .step-content{width:100%; height:22upx; border-bottom:1px solid #F1F2F3;}
888 | .uni-steps .step-title{line-height:50upx; height:50upx; background:#FFFFFF; width:auto; overflow:hidden; padding-right:8upx;}
889 | .uni-steps .current .step-circle{background:#00B26A; color:#FFFFFF;}
890 | .uni-steps .current .step-content{border-color:#00B26A;}
891 | .uni-steps .current .step-title{color:#00B26A;}
892 |
893 | /* comment */
894 | .uni-comment{padding:5rpx 0; display: flex; flex-grow:1; flex-direction: column;}
895 | .uni-comment-list{flex-wrap:nowrap; padding:10rpx 0; margin:10rpx 0; width:100%; display: flex;}
896 | .uni-comment-face{width:70upx; height:70upx; border-radius:100%; margin-right:20upx; flex-shrink:0; overflow:hidden;}
897 | .uni-comment-face image{width:100%; border-radius:100%;}
898 | .uni-comment-body{width:100%;}
899 | .uni-comment-top{line-height:1.5em; justify-content:space-between;}
900 | .uni-comment-top text{color:#0A98D5; font-size:24upx;}
901 | .uni-comment-date{line-height:38upx; flex-direction:row; justify-content:space-between; display:flex !important; flex-grow:1;}
902 | .uni-comment-date view{color:#666666; font-size:24upx; line-height:38upx;}
903 | .uni-comment-content{line-height:1.6em; font-size:28upx; padding:8rpx 0;}
904 | .uni-comment-replay-btn{background:#FFF; font-size:24upx; line-height:28upx; padding:5rpx 20upx; border-radius:30upx; color:#333 !important; margin:0 10upx;}
905 |
906 | /* swiper msg */
907 | .uni-swiper-msg{width:100%; padding:12rpx 0; flex-wrap:nowrap; display:flex;}
908 | .uni-swiper-msg-icon{width:50upx; margin-right:20upx;}
909 | .uni-swiper-msg-icon image{width:100%; flex-shrink:0;}
910 | .uni-swiper-msg swiper{width:100%; height:50upx;}
911 | .uni-swiper-msg swiper-item{line-height:50upx;}
912 |
913 | /* product */
914 | .uni-product-list {
915 | display: flex;
916 | width: 100%;
917 | flex-wrap: wrap;
918 | flex-direction: row;
919 | }
920 |
921 | .uni-product {
922 | padding: 20upx;
923 | display: flex;
924 | flex-direction: column;
925 | }
926 |
927 | .image-view {
928 | height: 330upx;
929 | width: 330upx;
930 | margin:12upx 0;
931 | }
932 |
933 | .uni-product-image {
934 | height: 330upx;
935 | width: 330upx;
936 | }
937 |
938 | .uni-product-title {
939 | width: 300upx;
940 | word-break: break-all;
941 | display: -webkit-box;
942 | overflow: hidden;
943 | line-height:1.5;
944 | text-overflow: ellipsis;
945 | -webkit-box-orient: vertical;
946 | -webkit-line-clamp: 2;
947 | }
948 |
949 | .uni-product-price {
950 | margin-top:10upx;
951 | font-size: 28upx;
952 | line-height:1.5;
953 | position: relative;
954 | }
955 |
956 | .uni-product-price-original {
957 | color: #e80080;
958 | }
959 |
960 | .uni-product-price-favour {
961 | color: #888888;
962 | text-decoration: line-through;
963 | margin-left: 10upx;
964 | }
965 |
966 | .uni-product-tip {
967 | position: absolute;
968 | right: 10upx;
969 | background-color: #ff3333;
970 | color: #ffffff;
971 | padding: 0 10upx;
972 | border-radius: 5upx;
973 | }
974 |
975 | /* timeline */
976 | .uni-timeline {
977 | margin: 35upx 0;
978 | display: flex;
979 | flex-direction: column;
980 | position: relative;
981 | }
982 |
983 |
984 | .uni-timeline-item {
985 | display: flex;
986 | flex-direction: row;
987 | position: relative;
988 | padding-bottom: 20upx;
989 | box-sizing: border-box;
990 | overflow: hidden;
991 |
992 | }
993 |
994 | .uni-timeline-item .uni-timeline-item-keynode {
995 | width: 160upx;
996 | flex-shrink: 0;
997 | box-sizing: border-box;
998 | padding-right: 20upx;
999 | text-align: right;
1000 | line-height: 65upx;
1001 | }
1002 |
1003 | .uni-timeline-item .uni-timeline-item-divider {
1004 | flex-shrink: 0;
1005 | position: relative;
1006 | width: 30upx;
1007 | height: 30upx;
1008 | top: 15upx;
1009 | border-radius: 50%;
1010 | background-color: #bbb;
1011 | }
1012 |
1013 |
1014 |
1015 | .uni-timeline-item-divider::before,
1016 | .uni-timeline-item-divider::after {
1017 | position: absolute;
1018 | left: 15upx;
1019 | width: 1upx;
1020 | height: 100vh;
1021 | content: '';
1022 | background: inherit;
1023 | }
1024 |
1025 | .uni-timeline-item-divider::before {
1026 | bottom: 100%;
1027 | }
1028 |
1029 | .uni-timeline-item-divider::after {
1030 | top: 100%;
1031 | }
1032 |
1033 |
1034 | .uni-timeline-last-item .uni-timeline-item-divider:after {
1035 | display: none;
1036 | }
1037 |
1038 | .uni-timeline-first-item .uni-timeline-item-divider:before {
1039 | display: none;
1040 | }
1041 |
1042 | .uni-timeline-item .uni-timeline-item-content {
1043 | padding-left: 20upx;
1044 | }
1045 |
1046 | .uni-timeline-last-item .bottom-border::after{
1047 | display: none;
1048 | }
1049 |
1050 | .uni-timeline-item-content .datetime{
1051 | color: #CCCCCC;
1052 | }
1053 |
1054 | /* 自定义节点颜色 */
1055 | .uni-timeline-last-item .uni-timeline-item-divider{
1056 | background-color: #1AAD19;
1057 | }
1058 |
1059 |
1060 | /* uni-icon */
1061 |
1062 | .uni-icon {
1063 | font-family: uniicons;
1064 | font-size: 24px;
1065 | font-weight: normal;
1066 | font-style: normal;
1067 | line-height: 1;
1068 | display: inline-block;
1069 | text-decoration: none;
1070 | -webkit-font-smoothing: antialiased;
1071 | }
1072 |
1073 | .uni-icon.uni-active {
1074 | color: #007aff;
1075 | }
1076 |
1077 | .uni-icon-contact:before {
1078 | content: '\e100';
1079 | }
1080 |
1081 | .uni-icon-person:before {
1082 | content: '\e101';
1083 | }
1084 |
1085 | .uni-icon-personadd:before {
1086 | content: '\e102';
1087 | }
1088 |
1089 | .uni-icon-contact-filled:before {
1090 | content: '\e130';
1091 | }
1092 |
1093 | .uni-icon-person-filled:before {
1094 | content: '\e131';
1095 | }
1096 |
1097 | .uni-icon-personadd-filled:before {
1098 | content: '\e132';
1099 | }
1100 |
1101 | .uni-icon-phone:before {
1102 | content: '\e200';
1103 | }
1104 |
1105 | .uni-icon-email:before {
1106 | content: '\e201';
1107 | }
1108 |
1109 | .uni-icon-chatbubble:before {
1110 | content: '\e202';
1111 | }
1112 |
1113 | .uni-icon-chatboxes:before {
1114 | content: '\e203';
1115 | }
1116 |
1117 | .uni-icon-phone-filled:before {
1118 | content: '\e230';
1119 | }
1120 |
1121 | .uni-icon-email-filled:before {
1122 | content: '\e231';
1123 | }
1124 |
1125 | .uni-icon-chatbubble-filled:before {
1126 | content: '\e232';
1127 | }
1128 |
1129 | .uni-icon-chatboxes-filled:before {
1130 | content: '\e233';
1131 | }
1132 |
1133 | .uni-icon-weibo:before {
1134 | content: '\e260';
1135 | }
1136 |
1137 | .uni-icon-weixin:before {
1138 | content: '\e261';
1139 | }
1140 |
1141 | .uni-icon-pengyouquan:before {
1142 | content: '\e262';
1143 | }
1144 |
1145 | .uni-icon-chat:before {
1146 | content: '\e263';
1147 | }
1148 |
1149 | .uni-icon-qq:before {
1150 | content: '\e264';
1151 | }
1152 |
1153 | .uni-icon-videocam:before {
1154 | content: '\e300';
1155 | }
1156 |
1157 | .uni-icon-camera:before {
1158 | content: '\e301';
1159 | }
1160 |
1161 | .uni-icon-mic:before {
1162 | content: '\e302';
1163 | }
1164 |
1165 | .uni-icon-location:before {
1166 | content: '\e303';
1167 | }
1168 |
1169 | .uni-icon-mic-filled:before,
1170 | .uni-icon-speech:before {
1171 | content: '\e332';
1172 | }
1173 |
1174 | .uni-icon-location-filled:before {
1175 | content: '\e333';
1176 | }
1177 |
1178 | .uni-icon-micoff:before {
1179 | content: '\e360';
1180 | }
1181 |
1182 | .uni-icon-image:before {
1183 | content: '\e363';
1184 | }
1185 |
1186 | .uni-icon-map:before {
1187 | content: '\e364';
1188 | }
1189 |
1190 | .uni-icon-compose:before {
1191 | content: '\e400';
1192 | }
1193 |
1194 | .uni-icon-trash:before {
1195 | content: '\e401';
1196 | }
1197 |
1198 | .uni-icon-upload:before {
1199 | content: '\e402';
1200 | }
1201 |
1202 | .uni-icon-download:before {
1203 | content: '\e403';
1204 | }
1205 |
1206 | .uni-icon-close:before {
1207 | content: '\e404';
1208 | }
1209 |
1210 | .uni-icon-redo:before {
1211 | content: '\e405';
1212 | }
1213 |
1214 | .uni-icon-undo:before {
1215 | content: '\e406';
1216 | }
1217 |
1218 | .uni-icon-refresh:before {
1219 | content: '\e407';
1220 | }
1221 |
1222 | .uni-icon-star:before {
1223 | content: '\e408';
1224 | }
1225 |
1226 | .uni-icon-plus:before {
1227 | content: '\e409';
1228 | }
1229 |
1230 | .uni-icon-minus:before {
1231 | content: '\e410';
1232 | }
1233 |
1234 | .uni-icon-circle:before,
1235 | .uni-icon-checkbox:before {
1236 | content: '\e411';
1237 | }
1238 |
1239 | .uni-icon-close-filled:before,
1240 | .uni-icon-clear:before {
1241 | content: '\e434';
1242 | }
1243 |
1244 | .uni-icon-refresh-filled:before {
1245 | content: '\e437';
1246 | }
1247 |
1248 | .uni-icon-star-filled:before {
1249 | content: '\e438';
1250 | }
1251 |
1252 | .uni-icon-plus-filled:before {
1253 | content: '\e439';
1254 | }
1255 |
1256 | .uni-icon-minus-filled:before {
1257 | content: '\e440';
1258 | }
1259 |
1260 | .uni-icon-circle-filled:before {
1261 | content: '\e441';
1262 | }
1263 |
1264 | .uni-icon-checkbox-filled:before {
1265 | content: '\e442';
1266 | }
1267 |
1268 | .uni-icon-closeempty:before {
1269 | content: '\e460';
1270 | }
1271 |
1272 | .uni-icon-refreshempty:before {
1273 | content: '\e461';
1274 | }
1275 |
1276 | .uni-icon-reload:before {
1277 | content: '\e462';
1278 | }
1279 |
1280 | .uni-icon-starhalf:before {
1281 | content: '\e463';
1282 | }
1283 |
1284 | .uni-icon-spinner:before {
1285 | content: '\e464';
1286 | }
1287 |
1288 | .uni-icon-spinner-cycle:before {
1289 | content: '\e465';
1290 | }
1291 |
1292 | .uni-icon-search:before {
1293 | content: '\e466';
1294 | }
1295 |
1296 | .uni-icon-plusempty:before {
1297 | content: '\e468';
1298 | }
1299 |
1300 | .uni-icon-forward:before {
1301 | content: '\e470';
1302 | }
1303 |
1304 | .uni-icon-back:before,
1305 | .uni-icon-left-nav:before {
1306 | content: '\e471';
1307 | }
1308 |
1309 | .uni-icon-checkmarkempty:before {
1310 | content: '\e472';
1311 | }
1312 |
1313 | .uni-icon-home:before {
1314 | content: '\e500';
1315 | }
1316 |
1317 | .uni-icon-navigate:before {
1318 | content: '\e501';
1319 | }
1320 |
1321 | .uni-icon-gear:before {
1322 | content: '\e502';
1323 | }
1324 |
1325 | .uni-icon-paperplane:before {
1326 | content: '\e503';
1327 | }
1328 |
1329 | .uni-icon-info:before {
1330 | content: '\e504';
1331 | }
1332 |
1333 | .uni-icon-help:before {
1334 | content: '\e505';
1335 | }
1336 |
1337 | .uni-icon-locked:before {
1338 | content: '\e506';
1339 | }
1340 |
1341 | .uni-icon-more:before {
1342 | content: '\e507';
1343 | }
1344 |
1345 | .uni-icon-flag:before {
1346 | content: '\e508';
1347 | }
1348 |
1349 | .uni-icon-home-filled:before {
1350 | content: '\e530';
1351 | }
1352 |
1353 | .uni-icon-gear-filled:before {
1354 | content: '\e532';
1355 | }
1356 |
1357 | .uni-icon-info-filled:before {
1358 | content: '\e534';
1359 | }
1360 |
1361 | .uni-icon-help-filled:before {
1362 | content: '\e535';
1363 | }
1364 |
1365 | .uni-icon-more-filled:before {
1366 | content: '\e537';
1367 | }
1368 |
1369 | .uni-icon-settings:before {
1370 | content: '\e560';
1371 | }
1372 |
1373 | .uni-icon-list:before {
1374 | content: '\e562';
1375 | }
1376 |
1377 | .uni-icon-bars:before {
1378 | content: '\e563';
1379 | }
1380 |
1381 | .uni-icon-loop:before {
1382 | content: '\e565';
1383 | }
1384 |
1385 | .uni-icon-paperclip:before {
1386 | content: '\e567';
1387 | }
1388 |
1389 | .uni-icon-eye:before {
1390 | content: '\e568';
1391 | }
1392 |
1393 | .uni-icon-arrowup:before {
1394 | content: '\e580';
1395 | }
1396 |
1397 | .uni-icon-arrowdown:before {
1398 | content: '\e581';
1399 | }
1400 |
1401 | .uni-icon-arrowleft:before {
1402 | content: '\e582';
1403 | }
1404 |
1405 | .uni-icon-arrowright:before {
1406 | content: '\e583';
1407 | }
1408 |
1409 | .uni-icon-arrowthinup:before {
1410 | content: '\e584';
1411 | }
1412 |
1413 | .uni-icon-arrowthindown:before {
1414 | content: '\e585';
1415 | }
1416 |
1417 | .uni-icon-arrowthinleft:before {
1418 | content: '\e586';
1419 | }
1420 |
1421 | .uni-icon-arrowthinright:before {
1422 | content: '\e587';
1423 | }
1424 |
1425 | .uni-icon-pulldown:before {
1426 | content: '\e588';
1427 | }
1428 |
1429 | .uni-icon-scan:before {
1430 | content: "\e612";
1431 | }
--------------------------------------------------------------------------------