├── README.md ├── static ├── images │ ├── avatar_1.jpg │ ├── mqcms-logo.png │ ├── product │ │ ├── 1.jpg │ │ ├── 11.jpg │ │ ├── 2.jpg │ │ ├── 22.jpg │ │ ├── 3.jpg │ │ ├── 33.jpg │ │ ├── 4.jpg │ │ ├── 44.jpg │ │ ├── 5.jpg │ │ └── 55.jpg │ └── navbar │ │ ├── home.png │ │ ├── user.png │ │ ├── release.png │ │ ├── home_active.png │ │ └── user_active.png └── css │ ├── user.css │ └── login.css ├── api ├── login.js ├── tag.js ├── post.js └── user.js ├── App.vue ├── config └── index.js ├── utils ├── service.js └── request.js ├── store └── index.js ├── pages.json ├── components ├── list-view │ └── list-view.vue ├── nomore │ └── nomore.vue ├── list-cell │ └── list-cell.vue ├── loadmore │ └── loadmore.vue ├── tui-tabs │ └── tui-tabs.vue ├── tui-tabbar │ └── tui-tabbar.vue ├── tag │ └── tag.vue └── icon │ └── icon.vue ├── pages ├── index.vue ├── login │ └── index.vue ├── user │ └── index.vue └── home │ ├── index.vue │ ├── posts.vue │ └── list.vue ├── common ├── app.css ├── thorui.css └── icon.css ├── manifest.json └── main.js /README.md: -------------------------------------------------------------------------------- 1 | # MQCMS-miniprogram -------------------------------------------------------------------------------- /static/images/avatar_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/avatar_1.jpg -------------------------------------------------------------------------------- /static/images/mqcms-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/mqcms-logo.png -------------------------------------------------------------------------------- /static/images/product/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/1.jpg -------------------------------------------------------------------------------- /static/images/product/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/11.jpg -------------------------------------------------------------------------------- /static/images/product/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/2.jpg -------------------------------------------------------------------------------- /static/images/product/22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/22.jpg -------------------------------------------------------------------------------- /static/images/product/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/3.jpg -------------------------------------------------------------------------------- /static/images/product/33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/33.jpg -------------------------------------------------------------------------------- /static/images/product/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/4.jpg -------------------------------------------------------------------------------- /static/images/product/44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/44.jpg -------------------------------------------------------------------------------- /static/images/product/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/5.jpg -------------------------------------------------------------------------------- /static/images/product/55.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/product/55.jpg -------------------------------------------------------------------------------- /static/images/navbar/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/navbar/home.png -------------------------------------------------------------------------------- /static/images/navbar/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/navbar/user.png -------------------------------------------------------------------------------- /static/images/navbar/release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/navbar/release.png -------------------------------------------------------------------------------- /static/images/navbar/home_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/navbar/home_active.png -------------------------------------------------------------------------------- /static/images/navbar/user_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MQEnergy/MQCMS-miniprogram/HEAD/static/images/navbar/user_active.png -------------------------------------------------------------------------------- /api/login.js: -------------------------------------------------------------------------------- 1 | import util from '../utils/request' 2 | 3 | export function Login(data) { 4 | return util.request({ 5 | url: 'auth/login', 6 | method: 'post', 7 | data: data 8 | }) 9 | } -------------------------------------------------------------------------------- /App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 21 | -------------------------------------------------------------------------------- /static/css/user.css: -------------------------------------------------------------------------------- 1 | .container { 2 | background: #fff; 3 | } 4 | .tui-msg-pic { 5 | width: 160upx; 6 | height: 160upx; 7 | border-radius: 50%; 8 | display: block; 9 | margin-right: 20upx; 10 | } 11 | .user-container .tui-list-cell::after { 12 | border-bottom: none !important; 13 | } 14 | .user-container .tui-list-content::after { 15 | border-bottom: none !important; 16 | } 17 | .user-container .tui-list-content::before { 18 | border-top: none !important; 19 | } -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | const config = { 2 | userInfo: {}, 3 | baseUrl: 'http://127.0.0.1:9501/api/v1/', 4 | wssUrl: 'ws://127.0.0.1:9502/', 5 | imgUrl: 'http://127.0.0.1:9501/upload/', 6 | headers: { 7 | 'Content-Type': 'application/x-www-form-urlencoded', 8 | 'Authorization': 'Bearer null' 9 | }, 10 | weToken: 'YWJUamVZU1g5cGdZZ3RXbHNNVGlkUT09OjqJxUF', 11 | usersKey: 'USERS_KEY', 12 | stateKey: 'STATE_KEY' 13 | } 14 | export { 15 | config 16 | } 17 | -------------------------------------------------------------------------------- /utils/service.js: -------------------------------------------------------------------------------- 1 | // 管理账号信息 2 | import { config } from "../config" 3 | 4 | const getUsers = () => { 5 | let ret = uni.getStorageSync(config.usersKey); 6 | if (!ret) { 7 | ret = '[]'; 8 | } 9 | return JSON.parse(ret); 10 | } 11 | 12 | const addUser = (userInfo) => { 13 | uni.setStorageSync(config.usersKey, userInfo); 14 | } 15 | 16 | const addLoginStatus = (status) => { 17 | uni.setStorageSync(config.stateKey, status); 18 | } 19 | export default { 20 | getUsers, 21 | addUser, 22 | addLoginStatus 23 | } 24 | -------------------------------------------------------------------------------- /store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | Vue.use(Vuex) 5 | 6 | const store = new Vuex.Store({ 7 | state: { 8 | /** 9 | * 是否需要强制登录 10 | */ 11 | forcedLogin: false, 12 | hasLogin: false, 13 | userName: "" 14 | }, 15 | mutations: { 16 | login(state, userName) { 17 | state.userName = userName || '新用户'; 18 | state.hasLogin = true; 19 | }, 20 | logout(state) { 21 | state.userName = ""; 22 | state.hasLogin = false; 23 | } 24 | } 25 | }) 26 | 27 | export default store 28 | -------------------------------------------------------------------------------- /api/tag.js: -------------------------------------------------------------------------------- 1 | import util from '../utils/request' 2 | 3 | export function TagIndex(data) { 4 | return util.request({ 5 | url: 'tag/index', 6 | method: 'get', 7 | data: data 8 | }) 9 | } 10 | 11 | export function TagStore(data) { 12 | return util.request({ 13 | url: 'tag/store', 14 | method: 'post', 15 | data: data 16 | }) 17 | } 18 | 19 | export function TagUpdate(data) { 20 | return util.request({ 21 | url: 'tag/update', 22 | method: 'post', 23 | data: data 24 | }) 25 | } 26 | 27 | export function TagDelete(data) { 28 | return util.request({ 29 | url: 'tag/delete', 30 | method: 'post', 31 | data: data 32 | }) 33 | } 34 | 35 | export function TagShow(data) { 36 | return util.request({ 37 | url: 'tag/show', 38 | method: 'post', 39 | data: data 40 | }) 41 | } -------------------------------------------------------------------------------- /api/post.js: -------------------------------------------------------------------------------- 1 | import util from '../utils/request' 2 | 3 | export function PostIndex(data) { 4 | return util.request({ 5 | url: 'post/index', 6 | method: 'get', 7 | data: data 8 | }) 9 | } 10 | 11 | export function PostStore(data) { 12 | return util.request({ 13 | url: 'post/store', 14 | method: 'post', 15 | data: data 16 | }) 17 | } 18 | 19 | export function PostUpdate(data) { 20 | return util.request({ 21 | url: 'post/update', 22 | method: 'post', 23 | data: data 24 | }) 25 | } 26 | 27 | export function PostDelete(data) { 28 | return util.request({ 29 | url: 'post/delete', 30 | method: 'post', 31 | data: data 32 | }) 33 | } 34 | 35 | export function PostShow(data) { 36 | return util.request({ 37 | url: 'post/show', 38 | method: 'post', 39 | data: data 40 | }) 41 | } -------------------------------------------------------------------------------- /api/user.js: -------------------------------------------------------------------------------- 1 | import util from '../utils/request' 2 | 3 | export function UserIndex(data) { 4 | return util.request({ 5 | url: 'user/index', 6 | method: 'get', 7 | data: data 8 | }) 9 | } 10 | 11 | export function UserStore(data) { 12 | return util.request({ 13 | url: 'user/store', 14 | method: 'post', 15 | data: data 16 | }) 17 | } 18 | 19 | export function UserUpdate(data) { 20 | return util.request({ 21 | url: 'user/update', 22 | method: 'post', 23 | data: data 24 | }) 25 | } 26 | 27 | export function UserDelete(data) { 28 | return util.request({ 29 | url: 'user/delete', 30 | method: 'post', 31 | data: data 32 | }) 33 | } 34 | 35 | export function UserShow(data) { 36 | return util.request({ 37 | url: 'user/show', 38 | method: 'post', 39 | data: data 40 | }) 41 | } -------------------------------------------------------------------------------- /pages.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | { 4 | "path": "pages/index", 5 | "style": { 6 | "navigationBarTitleText": "首页" 7 | } 8 | }, 9 | { 10 | "path": "pages/user/index", 11 | "style": { 12 | "navigationBarTitleText": "我", 13 | "enablePullDownRefresh": true 14 | } 15 | }, 16 | { 17 | "path": "pages/home/index", 18 | "style": { 19 | "navigationBarTitleText": "首页", 20 | "enablePullDownRefresh": true 21 | } 22 | }, 23 | { 24 | "path": "pages/login/index", 25 | "style": { 26 | "navigationBarTitleText": "登录" 27 | } 28 | } 29 | ], 30 | "globalStyle": { 31 | "navigationBarTextStyle": "black", 32 | "navigationBarBackgroundColor": "#FFFFFF", 33 | "backgroundColor": "#fbf9fe" 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /static/css/login.css: -------------------------------------------------------------------------------- 1 | .container{ 2 | width:750rpx; 3 | height:100%; 4 | display: flex; 5 | flex-direction: column; 6 | padding:0; 7 | 8 | } 9 | .logo{ 10 | text-align:center; 11 | flex-wrap: wrap; 12 | background:#fff; 13 | width:100%; 14 | padding:100rpx 20rpx 0 20rpx; 15 | 16 | } 17 | .logo .logo-class { 18 | width:90%; 19 | margin:0 auto; 20 | padding-bottom: 100rpx; 21 | } 22 | image { 23 | width:280rpx; 24 | height: 280rpx; 25 | } 26 | .top text { 27 | color:#666; 28 | font-size:28rpx; 29 | } 30 | .main { 31 | line-height:48rpx; 32 | font-weight:normal; 33 | padding:50rpx 65rpx; 34 | } 35 | .top{ 36 | font-size: 14px; 37 | margin-left: 20rpx; 38 | font-weight: 100; 39 | width:100%; 40 | } 41 | .main h5 { 42 | font-size:28rpx; 43 | color:#666; 44 | font-weight:bold; 45 | line-height:72rpx; 46 | } 47 | .main text { 48 | color:#888; 49 | line-height:60rpx; 50 | } 51 | .now{ 52 | width: 80%; 53 | height: 40px; 54 | line-height: 40px; 55 | color: #fff; 56 | margin-bottom: 20px; 57 | border-radius: 5px; 58 | background-color: #10D5AF; 59 | } 60 | botton { 61 | border:none; 62 | } -------------------------------------------------------------------------------- /components/list-view/list-view.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 25 | 26 | 80 | -------------------------------------------------------------------------------- /pages/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 60 | 61 | 64 | -------------------------------------------------------------------------------- /utils/request.js: -------------------------------------------------------------------------------- 1 | import { config } from "../config" 2 | 3 | /** 4 | * 网络请求 5 | * @param params 6 | * @returns {Promise} 7 | */ 8 | const request = (params) => { 9 | const userInfo = uni.getStorageSync(config.usersKey); 10 | if (!userInfo) { 11 | delete config.headers.Authorization 12 | } else { 13 | config.headers.Authorization = 'Bearer ' + userInfo.token; 14 | } 15 | 16 | return uni.request({ 17 | url: config.baseUrl + params.url, 18 | method: params.method || 'GET', 19 | data: params.data || {}, 20 | header: config.headers, 21 | 22 | }).then(data => { 23 | var [error, res] = data; 24 | if (res && res.statusCode != 200) { 25 | switch (res.statusCode) { 26 | case 400: res.data.message = res.data.message; break; 27 | case 401: res.data.message = '未授权,请登录'; break; 28 | case 403: res.data.message = '拒绝访问'; break; 29 | case 404: res.data.message = `请求地址出错`; break; 30 | case 408: res.data.message = '请求超时'; break; 31 | case 500: res.data.message = '服务器内部错误'; break; 32 | case 501: res.data.message = '服务未实现'; break; 33 | case 502: res.data.message = '网关错误'; break; 34 | case 503: res.data.message = '服务不可用'; break; 35 | case 504: res.data.message = '网关超时'; break; 36 | case 505: res.data.message = 'HTTP版本不受支持'; break; 37 | default: break; 38 | } 39 | failCallBack(res.data); 40 | return Promise.reject(res.data); 41 | } 42 | return Promise.resolve(res.data); 43 | }) 44 | } 45 | 46 | /** 47 | * 错误提醒 48 | * @param err 49 | */ 50 | const failCallBack = (err) => { 51 | uni.showToast({ 52 | icon: 'none', 53 | title: err.message 54 | }) 55 | } 56 | 57 | /** 58 | * 创建websocket连接 59 | * @param params 60 | */ 61 | const createWebsocket = (params) => { 62 | uni.connectSocket({ 63 | url: config.wssUrl + params.url, 64 | }) 65 | uni.onSocketOpen(params.openCallBack); 66 | uni.onSocketMessage(params.messageCallBack); 67 | uni.onSocketError(params.errorCallBack); 68 | uni.onSocketClose(params.closeCallBack); 69 | } 70 | 71 | /** 72 | * 组装websocket参数 73 | * @param message 74 | * @param module_id 75 | * @param data 76 | * @returns {string} 77 | */ 78 | const websocketParams = (message, module_id, data) => { 79 | return JSON.stringify({ 80 | 'message': message, 81 | 'module_id': module_id, 82 | 'token': config.weToken, 83 | 'data': data 84 | }); 85 | }; 86 | 87 | export default { 88 | request, 89 | createWebsocket, 90 | websocketParams 91 | } 92 | -------------------------------------------------------------------------------- /common/app.css: -------------------------------------------------------------------------------- 1 | /*app.wxss*/ 2 | @font-face { 3 | font-family: uniicons; 4 | font-weight: normal; 5 | font-style: normal; 6 | src: url('https://img-cdn-qiniu.dcloud.net.cn/fonts/uni.ttf') format('truetype'); 7 | } 8 | 9 | /*通用 */ 10 | view{ 11 | font-size:28upx; 12 | line-height:1.8; 13 | } 14 | .container { 15 | padding: 20rpx 0 120rpx 0; 16 | box-sizing: border-box; 17 | } 18 | 19 | .header { 20 | box-sizing: border-box; 21 | height: 40rpx; 22 | } 23 | 24 | .title { 25 | font-size: 34rpx; 26 | color: #333; 27 | font-weight: 500; 28 | } 29 | 30 | .sub-title { 31 | font-size: 24rpx; 32 | color: #7a7a7a; 33 | padding-top: 18rpx; 34 | } 35 | 36 | .tui-mtop { 37 | margin-top: 80rpx; 38 | } 39 | 40 | page { 41 | background: #fafafa; 42 | font-size: 32rpx; 43 | } 44 | 45 | .container { 46 | display: flex; 47 | flex-direction: column; 48 | box-sizing: border-box; 49 | } 50 | 51 | .phcolor { 52 | color: #ccc; 53 | font-size: 32rpx; 54 | } 55 | 56 | button::after { 57 | border: none; 58 | } 59 | 60 | .opcity { 61 | opacity: 0.5; 62 | } 63 | 64 | .hover { 65 | background: #f7f7f9 !important; 66 | } 67 | 68 | .ellipsis { 69 | overflow: hidden; 70 | white-space: nowrap; 71 | text-overflow: ellipsis; 72 | } 73 | 74 | /*列表统一样式 */ 75 | 76 | .list-item { 77 | position: relative; 78 | } 79 | 80 | .list-item::after { 81 | content: ''; 82 | position: absolute; 83 | border-bottom: 1upx solid #eaeef1; 84 | -webkit-transform: scaleY(0.5); 85 | transform: scaleY(0.5); 86 | bottom: 0; 87 | right: 0; 88 | left: 30rpx; 89 | } 90 | 91 | .last::after { 92 | border-bottom: 0 !important; 93 | } 94 | 95 | /*按钮样式*/ 96 | 97 | .btn-primary { 98 | width: 100%; 99 | height: 90rpx; 100 | line-height: 90rpx; 101 | background: linear-gradient(-90deg, #5677fc, #5c8dff); 102 | border-radius: 45rpx; 103 | color: #fff; 104 | font-size: 36rpx; 105 | } 106 | 107 | .btn-hover { 108 | color: #d5d4d9; 109 | background: linear-gradient(-90deg, #4a67d6, #4e77d9); 110 | } 111 | 112 | .btn-gray { 113 | background: #ededed; 114 | color: #999 !important; 115 | } 116 | 117 | .btn-gray-hover { 118 | background: #d5d5d5 !important; 119 | color: #898989; 120 | } 121 | 122 | .btn-white { 123 | background: #fff; 124 | color: #333 !important; 125 | } 126 | 127 | .tui-white-hover { 128 | background: #e5e5e5 !important; 129 | color: #2e2e2e !important; 130 | } 131 | 132 | .btn-disabled { 133 | color: #fafbfc !important; 134 | background: linear-gradient(-90deg, #cad8fb, #c9d3fb); 135 | } 136 | -------------------------------------------------------------------------------- /components/nomore/nomore.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 41 | 42 | 120 | -------------------------------------------------------------------------------- /components/list-cell/list-cell.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 70 | 71 | 126 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "mqcms-miniprogram", 3 | "appid" : "__UNI__8401E67", 4 | "description" : "登录模板", 5 | "versionName" : "1.0.0", 6 | "versionCode" : "100", 7 | "transformPx" : false, 8 | /* 5+App特有相关 */ 9 | "app-plus" : { 10 | "usingComponents" : true, 11 | /* 模块配置 */ 12 | "modules" : {}, 13 | /* 应用发布信息 */ 14 | "distribute" : { 15 | /* android打包配置 */ 16 | "android" : { 17 | "permissions" : [ 18 | "", 19 | "", 20 | "", 21 | "", 22 | "", 23 | "", 24 | "", 25 | "", 26 | "", 27 | "", 28 | "", 29 | "", 30 | "", 31 | "", 32 | "", 33 | "", 34 | "", 35 | "", 36 | "", 37 | "", 38 | "", 39 | "" 40 | ] 41 | }, 42 | /* ios打包配置 */ 43 | "ios" : {}, 44 | /* SDK配置 */ 45 | "sdkConfigs" : {} 46 | } 47 | }, 48 | /* 快应用特有相关 */ 49 | "quickapp" : {}, 50 | /* 小程序特有相关 */ 51 | "mp-weixin" : { 52 | "appid" : "", 53 | "setting" : { 54 | "urlCheck" : false, 55 | "minified" : true 56 | }, 57 | "usingComponents" : true 58 | }, 59 | "mp-alipay" : { 60 | "usingComponents" : true 61 | }, 62 | "mp-baidu" : { 63 | "usingComponents" : true 64 | }, 65 | "mp-toutiao" : { 66 | "usingComponents" : true 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App' 3 | import store from './store' 4 | Vue.config.productionTip = false 5 | 6 | const tui = { 7 | toast: function(text, duration, success) { 8 | uni.showToast({ 9 | title: text, 10 | icon: success ? 'success' : 'none', 11 | duration: duration || 2000 12 | }) 13 | }, 14 | constNum: function() { 15 | const res = uni.getSystemInfoSync(); 16 | return res.platform.toLocaleLowerCase() == "android" ? 300 : 0; 17 | }, 18 | px: function(num) { 19 | return uni.upx2px(num) + 'px'; 20 | }, 21 | interfaceUrl: function() { 22 | //接口地址 23 | return "https://127.0.0.1:9501/api/v1/"; 24 | }, 25 | request: function(url, postData, method, type, hideLoading) { 26 | //接口请求 27 | if (!hideLoading) { 28 | uni.showLoading({ 29 | mask: true, 30 | title: '请稍候...' 31 | }) 32 | } 33 | return new Promise((resolve, reject) => { 34 | uni.request({ 35 | url: this.interfaceUrl() + url, 36 | data: postData, 37 | header: { 38 | 'content-type': type ? 'application/x-www-form-urlencoded' : 'application/json', 39 | 'authorization': this.getToken(), 40 | 'security': 1 41 | }, 42 | method: method, //'GET','POST' 43 | dataType: 'json', 44 | success: (res) => { 45 | !hideLoading && uni.hideLoading() 46 | resolve(res.data) 47 | }, 48 | fail: (res) => { 49 | if (!hideLoading) { 50 | this.toast("网络不给力,请稍后再试~") 51 | } 52 | reject(res) 53 | } 54 | }) 55 | }) 56 | }, 57 | uploadFile: function(src) { 58 | const that = this 59 | uni.showLoading({ 60 | title: '请稍候...' 61 | }) 62 | return new Promise((resolve, reject) => { 63 | const uploadTask = uni.uploadFile({ 64 | url: 'https://abc.cc', 65 | filePath: src, 66 | name: 'file', 67 | header: { 68 | 'content-type': 'multipart/form-data' 69 | }, 70 | formData: {}, 71 | success: function(res) { 72 | uni.hideLoading() 73 | let d = JSON.parse(res.data) 74 | if (d.code === 1) { 75 | let fileObj = JSON.parse(d.data)[0]; 76 | //文件上传成功后把图片路径数据提交到服务器,数据提交成功后,再进行下张图片的上传 77 | resolve(fileObj) 78 | } else { 79 | that.toast(res.message); 80 | } 81 | }, 82 | fail: function(res) { 83 | reject(res) 84 | uni.hideLoading(); 85 | that.toast(res.message); 86 | } 87 | }) 88 | }) 89 | }, 90 | setToken: function(token) { 91 | uni.setStorageSync("token", token) 92 | }, 93 | getToken() { 94 | return uni.getStorageSync("token") 95 | }, 96 | isLogin: function() { 97 | return uni.getStorageSync("token") ? true : false 98 | }, 99 | webURL:function(){ 100 | return "https://www.thorui.cn/wx" 101 | } 102 | } 103 | 104 | Vue.prototype.tui = tui 105 | Vue.prototype.$eventHub = Vue.prototype.$eventHub || new Vue() 106 | Vue.prototype.$store = store 107 | App.mpType = 'app' 108 | 109 | const app = new Vue({ 110 | store, 111 | ...App 112 | }) 113 | app.$mount() 114 | -------------------------------------------------------------------------------- /pages/login/index.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 137 | 138 | 141 | -------------------------------------------------------------------------------- /pages/user/index.vue: -------------------------------------------------------------------------------- 1 | 59 | 60 | 102 | 103 | -------------------------------------------------------------------------------- /components/loadmore/loadmore.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 35 | 36 | 167 | -------------------------------------------------------------------------------- /components/tui-tabs/tui-tabs.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 163 | 164 | 229 | -------------------------------------------------------------------------------- /components/tui-tabbar/tui-tabbar.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 105 | 106 | 250 | -------------------------------------------------------------------------------- /pages/home/index.vue: -------------------------------------------------------------------------------- 1 | 77 | 78 | 117 | 118 | 178 | -------------------------------------------------------------------------------- /components/tag/tag.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 61 | 62 | 331 | -------------------------------------------------------------------------------- /pages/home/posts.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 228 | 229 | 366 | -------------------------------------------------------------------------------- /pages/home/list.vue: -------------------------------------------------------------------------------- 1 | 47 | 48 | 202 | 203 | 338 | -------------------------------------------------------------------------------- /common/thorui.css: -------------------------------------------------------------------------------- 1 | /* Thor UI 基础组件 样式*/ 2 | 3 | /*! 4 | * ===================================================== 5 | * Thor UI v1.0.0 (https://www.thorui.cn/) 6 | * ===================================================== 7 | */ 8 | .tui-mask { 9 | width: 100%; 10 | height: 100%; 11 | position: fixed; 12 | top: 0; 13 | left: 0; 14 | background: rgba(0, 0, 0, 0.5); 15 | z-index: 999; 16 | } 17 | 18 | .tui-ellipsis { 19 | overflow: hidden; 20 | white-space: nowrap; 21 | text-overflow: ellipsis; 22 | } 23 | 24 | .tui-ellipsis-2 { 25 | display: -webkit-box; 26 | overflow: hidden; 27 | white-space: normal !important; 28 | text-overflow: ellipsis; 29 | word-wrap: break-word; 30 | -webkit-line-clamp: 2; 31 | -webkit-box-orient: vertical; 32 | } 33 | 34 | .tui-center { 35 | text-align: center; 36 | } 37 | 38 | .tui-right { 39 | text-align: right; 40 | } 41 | 42 | .tui-opcity { 43 | opacity: 0.5; 44 | } 45 | 46 | .tui-scale-small { 47 | transform: scale(0.9); 48 | transform-origin: center center; 49 | } 50 | 51 | .tui-height-full { 52 | height: 100%; 53 | } 54 | 55 | .tui-width-full { 56 | width: 100%; 57 | } 58 | 59 | .tui-ptop-zero { 60 | padding-top: 0; 61 | } 62 | 63 | .tui-pbottom-zero { 64 | padding-bottom: 0; 65 | } 66 | 67 | .tui-pleft-zero { 68 | padding-left: 0; 69 | } 70 | 71 | .tui-pright-zero { 72 | padding-right: 0; 73 | } 74 | 75 | .tui-col-12 { 76 | width: 100%; 77 | } 78 | 79 | .tui-col-11 { 80 | width: 91.66666667%; 81 | } 82 | 83 | .tui-col-10 { 84 | width: 83.33333333%; 85 | } 86 | 87 | .tui-col-9 { 88 | width: 75%; 89 | } 90 | 91 | .tui-col-8 { 92 | width: 66.66666667%; 93 | } 94 | 95 | .tui-col-7 { 96 | width: 58.33333333%; 97 | } 98 | 99 | .tui-col-6 { 100 | width: 50%; 101 | } 102 | 103 | .tui-col-5 { 104 | width: 41.66666667%; 105 | } 106 | 107 | .tui-col-4 { 108 | width: 33.33333333%; 109 | } 110 | 111 | .tui-col-3 { 112 | width: 25%; 113 | } 114 | 115 | .tui-col-2 { 116 | width: 16.66666667%; 117 | } 118 | 119 | .tui-col-1 { 120 | width: 8.33333333%; 121 | } 122 | 123 | /* color start*/ 124 | 125 | .tui-primary { 126 | background: #5677fc !important; 127 | color: #fff; 128 | } 129 | 130 | .tui-light-primary { 131 | background: #5c8dff !important; 132 | color: #fff; 133 | } 134 | 135 | .tui-dark-primary { 136 | background: #4a67d6 !important; 137 | color: #fff; 138 | } 139 | 140 | .tui-dLight-primary { 141 | background: #4e77d9 !important; 142 | color: #fff; 143 | } 144 | 145 | .tui-danger { 146 | background: #ed3f14 !important; 147 | color: #fff; 148 | } 149 | 150 | .tui-warning { 151 | background: #ff7900 !important; 152 | color: #fff; 153 | } 154 | 155 | .tui-green { 156 | background: #19be6b !important; 157 | color: #fff; 158 | } 159 | 160 | .tui-black { 161 | background: #000 !important; 162 | color: #fff; 163 | } 164 | 165 | .tui-white { 166 | background: #fff !important; 167 | color: #333 !important; 168 | } 169 | 170 | .tui-translucent { 171 | background: rgba(0, 0, 0, 0.7); 172 | } 173 | 174 | .tui-light-black { 175 | background: #333 !important; 176 | } 177 | 178 | .tui-gray { 179 | background: #80848f; 180 | } 181 | 182 | .tui-phcolor-gray { 183 | background: #ccc !important; 184 | } 185 | 186 | .tui-divider-gray { 187 | background: #eaeef1 !important; 188 | } 189 | 190 | .tui-btn-gray { 191 | background: #ededed !important; 192 | color: #999 !important; 193 | } 194 | 195 | .tui-hover-gray { 196 | background: #f7f7f9 !important; 197 | } 198 | 199 | .tui-bg-gray { 200 | background: #fafafa !important; 201 | } 202 | 203 | .tui-light-blue { 204 | background: #ecf6fd; 205 | color: #4dabeb !important; 206 | } 207 | 208 | .tui-light-brownish { 209 | background: #fcebef; 210 | color: #8a5966 !important; 211 | } 212 | 213 | .tui-light-orange { 214 | background: #fef5eb; 215 | color: #faa851 !important; 216 | } 217 | 218 | .tui-light-green { 219 | background: #e8f6e8; 220 | color: #44cf85 !important; 221 | } 222 | 223 | /* color end*/ 224 | 225 | /* button start*/ 226 | 227 | .tui-btn { 228 | width: 100%; 229 | position: relative; 230 | border: 0 !important; 231 | border-radius: 10rpx; 232 | display: inline-block; 233 | } 234 | 235 | .tui-btn::after { 236 | content: ""; 237 | position: absolute; 238 | width: 200%; 239 | height: 200%; 240 | -webkit-transform-origin: 0 0; 241 | transform-origin: 0 0; 242 | -webkit-transform: scale(0.5, 0.5); 243 | transform: scale(0.5, 0.5); 244 | -webkit-box-sizing: border-box; 245 | box-sizing: border-box; 246 | left: 0; 247 | top: 0; 248 | border-radius: 20rpx; 249 | } 250 | 251 | .tui-btn-block { 252 | font-size: 36rpx; 253 | height: 90rpx; 254 | line-height: 90rpx; 255 | } 256 | 257 | .tui-white::after { 258 | border: 1px solid #eaeef1; 259 | } 260 | 261 | .tui-white-hover { 262 | background: #e5e5e5 !important; 263 | color: #2e2e2e !important; 264 | } 265 | 266 | .tui-dark-disabled { 267 | opacity: 0.6; 268 | color: #fafbfc !important; 269 | } 270 | 271 | .tui-outline-hover { 272 | opacity: 0.5; 273 | } 274 | 275 | .tui-primary-hover { 276 | background: #4a67d6 !important; 277 | color: #e5e5e5 !important; 278 | } 279 | 280 | .tui-primary-outline::after { 281 | border: 1px solid #5677fc !important; 282 | } 283 | 284 | .tui-primary-outline { 285 | color: #5677fc !important; 286 | background: none; 287 | } 288 | 289 | .tui-danger-hover { 290 | background: #d53912 !important; 291 | color: #e5e5e5 !important; 292 | } 293 | 294 | .tui-danger-outline { 295 | color: #ed3f14 !important; 296 | background: none; 297 | } 298 | 299 | .tui-danger-outline::after { 300 | border: 1px solid #ed3f14 !important; 301 | } 302 | 303 | .tui-warning-hover { 304 | background: #e56d00 !important; 305 | color: #e5e5e5 !important; 306 | } 307 | 308 | .tui-warning-outline { 309 | color: #ff7900 !important; 310 | background: none; 311 | } 312 | 313 | .tui-warning-outline::after { 314 | border: 1px solid #ff7900 !important; 315 | } 316 | 317 | .tui-green-hover { 318 | background: #16ab60 !important; 319 | color: #e5e5e5 !important; 320 | } 321 | 322 | .tui-green-outline { 323 | color: #44cf85 !important; 324 | background: none; 325 | } 326 | 327 | .tui-green-outline::after { 328 | border: 1px solid #44cf85 !important; 329 | } 330 | 331 | .tui-gray-hover { 332 | background: #d5d5d5 !important; 333 | color: #898989; 334 | } 335 | 336 | .tui-gray-outline { 337 | color: #999 !important; 338 | background: none; 339 | } 340 | 341 | .tui-gray-outline::after { 342 | border: 1px solid #ccc !important; 343 | } 344 | 345 | /*圆角 */ 346 | 347 | .tui-fillet { 348 | border-radius: 45rpx; 349 | } 350 | 351 | .tui-white.tui-fillet::after { 352 | border-radius: 90rpx; 353 | } 354 | 355 | .tui-outline-fillet::after { 356 | border-radius: 90rpx; 357 | } 358 | 359 | /*渐变 */ 360 | 361 | .tui-btn-gradual { 362 | background: linear-gradient(-90deg, #5677fc, #5c8dff); 363 | border-radius: 45rpx; 364 | color: #fff; 365 | } 366 | 367 | .tui-gradual-hover { 368 | color: #d5d4d9 !important; 369 | background: linear-gradient(-90deg, #4a67d6, #4e77d9); 370 | } 371 | 372 | .btn-gradual-disabled { 373 | color: #fafbfc !important; 374 | border-radius: 45rpx; 375 | background: linear-gradient(-90deg, #cad8fb, #c9d3fb); 376 | } 377 | 378 | /*不同尺寸 */ 379 | 380 | .tui-btn-mini { 381 | width: auto; 382 | font-size: 30rpx; 383 | height: 70rpx; 384 | line-height: 70rpx; 385 | } 386 | 387 | .tui-btn-small { 388 | width: auto; 389 | font-size: 30rpx; 390 | height: 60rpx; 391 | line-height: 60rpx; 392 | } 393 | 394 | /* button end*/ 395 | 396 | /* flex start*/ 397 | 398 | .tui-flex { 399 | display: -webkit-flex; 400 | display: flex; 401 | } 402 | 403 | .tui-flex-1 { 404 | flex: 1; 405 | } 406 | 407 | .tui-align-center { 408 | justify-content: center; 409 | } 410 | 411 | .tui-align-left { 412 | justify-content: flex-start !important; 413 | } 414 | 415 | .tui-align-right { 416 | justify-content: flex-end !important; 417 | } 418 | 419 | .tui-align-between { 420 | justify-content: space-between !important; 421 | } 422 | 423 | .tui-align-around { 424 | justify-content: space-around !important; 425 | } 426 | 427 | .tui-vertical-center { 428 | align-items: center; 429 | } 430 | 431 | .tui-vertical-top { 432 | align-items: flex-start; 433 | } 434 | 435 | .tui-vertical-top { 436 | align-items: flex-end; 437 | } 438 | 439 | .tui-line-feed { 440 | flex-direction: row; 441 | flex-wrap: wrap; 442 | } 443 | 444 | /* flex end*/ 445 | 446 | /* tag start*/ 447 | 448 | .tui-tag { 449 | padding: 16rpx 26rpx; 450 | font-size: 28rpx; 451 | border-radius: 6rpx; 452 | display: inline-block; 453 | line-height: 28rpx; 454 | } 455 | 456 | .tui-tag-small { 457 | padding: 10rpx 14rpx; 458 | font-size: 24rpx; 459 | border-radius: 6rpx; 460 | display: inline-block; 461 | line-height: 24rpx; 462 | } 463 | 464 | .tui-tag-outline { 465 | position: relative; 466 | background: none; 467 | color: #5677fc; 468 | } 469 | 470 | .tui-tag-outline::after { 471 | content: ""; 472 | position: absolute; 473 | width: 200%; 474 | height: 200%; 475 | -webkit-transform-origin: 0 0; 476 | transform-origin: 0 0; 477 | -webkit-transform: scale(0.5, 0.5); 478 | transform: scale(0.5, 0.5); 479 | -webkit-box-sizing: border-box; 480 | box-sizing: border-box; 481 | left: 0; 482 | top: 0; 483 | border-radius: 20rpx; 484 | border: 1px solid #5677fc; 485 | } 486 | 487 | .tui-tag-fillet { 488 | border-radius: 50rpx; 489 | } 490 | 491 | .tui-white.tui-tag-fillet::after { 492 | border-radius: 80rpx; 493 | } 494 | 495 | .tui-tag-outline-fillet::after { 496 | border-radius: 80rpx; 497 | } 498 | 499 | .tui-tag-fillet-left { 500 | border-radius: 50rpx 0 0 50rpx; 501 | } 502 | 503 | .tui-tag-fillet-right { 504 | border-radius: 0 50rpx 50rpx 0; 505 | } 506 | 507 | /* tag end*/ 508 | 509 | /* badge start*/ 510 | 511 | .tui-badge-dot { 512 | height: 16rpx; 513 | width: 16rpx; 514 | border-radius: 8rpx; 515 | display: inline-block; 516 | background: #5677fc; 517 | } 518 | 519 | .tui-badge { 520 | font-size: 12px; 521 | line-height: 1; 522 | display: inline-block; 523 | padding: 3px 6px; 524 | border-radius: 50px; 525 | background: #5677fc; 526 | color: #fff; 527 | } 528 | 529 | .tui-badge-small { 530 | transform: scale(0.8); 531 | transform-origin: center center; 532 | } 533 | 534 | /* badge end*/ 535 | 536 | /* loading start*/ 537 | 538 | .tui-loadmore { 539 | width: 48%; 540 | margin: 1.5em auto; 541 | line-height: 1.5em; 542 | font-size: 24rpx; 543 | text-align: center; 544 | } 545 | 546 | .tui-loading { 547 | margin: 0 5px; 548 | width: 20px; 549 | height: 20px; 550 | display: inline-block; 551 | vertical-align: middle; 552 | -webkit-animation: a 1s steps(12) infinite; 553 | animation: a 1s steps(12) infinite; 554 | background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat; 555 | background-size: 100%; 556 | } 557 | 558 | @-webkit-keyframes a { 559 | 0% { 560 | -webkit-transform: rotate(0deg); 561 | transform: rotate(0deg); 562 | } 563 | 564 | to { 565 | -webkit-transform: rotate(1turn); 566 | transform: rotate(1turn); 567 | } 568 | } 569 | 570 | @keyframes a { 571 | 0% { 572 | -webkit-transform: rotate(0deg); 573 | transform: rotate(0deg); 574 | } 575 | 576 | to { 577 | -webkit-transform: rotate(1turn); 578 | transform: rotate(1turn); 579 | } 580 | } 581 | 582 | .tui-loadmore-tips { 583 | display: inline-block; 584 | vertical-align: middle; 585 | } 586 | 587 | .tui-loading-2 { 588 | width: 28rpx; 589 | height: 28rpx; 590 | border: 1px solid #8f8d8e; 591 | border-radius: 50%; 592 | margin: 0 6px; 593 | display: inline-block; 594 | vertical-align: middle; 595 | clip-path: polygon(0% 0%, 100% 0%, 100% 30%, 0% 30%); 596 | animation: rotate 1s linear infinite; 597 | } 598 | 599 | @-webkit-keyframes rotate { 600 | from { 601 | transform: rotatez(0deg); 602 | } 603 | 604 | to { 605 | transform: rotatez(360deg); 606 | } 607 | } 608 | 609 | @keyframes rotate { 610 | from { 611 | transform: rotatez(0deg); 612 | } 613 | 614 | to { 615 | transform: rotatez(360deg); 616 | } 617 | } 618 | 619 | .tui-loading-3 { 620 | display: inline-block; 621 | margin: 0 6px; 622 | vertical-align: middle; 623 | width: 28rpx; 624 | height: 28rpx; 625 | background: 0 0; 626 | border-radius: 50%; 627 | border: 2px solid; 628 | border-color: #e5e5e5 #e5e5e5 #e5e5e5 #5677fc; 629 | animation: tui-rotate 0.7s linear infinite; 630 | } 631 | 632 | .tui-loading-3.tui-loading-red { 633 | border-color: #e5e5e5 #e5e5e5 #e5e5e5 #19be6b; 634 | } 635 | 636 | .tui-loading-3.tui-loading-orange { 637 | border-color: #e5e5e5 #e5e5e5 #e5e5e5 #ff7900; 638 | } 639 | 640 | .tui-loading-3.tui-loading-green { 641 | border-color: #ededed #ededed #ededed #ed3f14; 642 | } 643 | 644 | @-webkit-keyframes tui-rotate { 645 | 0% { 646 | transform: rotate(0); 647 | } 648 | 649 | 100% { 650 | transform: rotate(360deg); 651 | } 652 | } 653 | 654 | @keyframes tui-rotate { 655 | 0% { 656 | transform: rotate(0); 657 | } 658 | 659 | 100% { 660 | transform: rotate(360deg); 661 | } 662 | } 663 | 664 | .tui-nomore { 665 | position: relative; 666 | text-align: center; 667 | display: flex; 668 | justify-content: center; 669 | margin-top: 10rpx; 670 | padding-bottom: 44rpx; 671 | } 672 | 673 | .tui-nomore::before { 674 | content: ''; 675 | position: absolute; 676 | border-bottom: 1rpx solid #e5e5e5; 677 | -webkit-transform: scaleY(0.5); 678 | transform: scaleY(0.5); 679 | width: 360rpx; 680 | top: 18rpx; 681 | } 682 | 683 | .tui-nomore::after { 684 | content: '没有更多了'; 685 | position: absolute; 686 | color: #999; 687 | font-size: 24rpx; 688 | text-align: center; 689 | /* width: 160rpx; */ 690 | padding: 0 18rpx; 691 | height: 36rpx; 692 | line-height: 36rpx; 693 | background: #fafafa; 694 | z-index: 1; 695 | } 696 | 697 | .tui-nomore-dot { 698 | position: relative; 699 | text-align: center; 700 | display: flex; 701 | justify-content: center; 702 | margin-top: 10rpx; 703 | padding-bottom: 40rpx; 704 | } 705 | 706 | .tui-nomore-dot::before { 707 | content: ''; 708 | position: absolute; 709 | border-bottom: 1rpx solid #e5e5e5; 710 | -webkit-transform: scaleY(0.5); 711 | transform: scaleY(0.5); 712 | width: 360rpx; 713 | top: 18rpx; 714 | } 715 | 716 | .tui-nomore-dot::after { 717 | content: '●'; 718 | position: absolute; 719 | color: #e5e5e5; 720 | font-size: 10px; 721 | text-align: center; 722 | width: 50rpx; 723 | height: 36rpx; 724 | line-height: 36rpx; 725 | background: #fafafa; 726 | transform: scale(0.8); 727 | transform-origin: center center; 728 | z-index: 1; 729 | } 730 | 731 | /* loading end*/ 732 | 733 | /* list start*/ 734 | 735 | .tui-list-title { 736 | width: 100%; 737 | padding: 25rpx 30rpx; 738 | box-sizing: border-box; 739 | font-size: 28rpx; 740 | line-height: 1; 741 | color: #999; 742 | } 743 | 744 | .tui-list-content { 745 | width: 100%; 746 | position: relative; 747 | } 748 | 749 | .tui-list-content::before { 750 | content: " "; 751 | position: absolute; 752 | top: -1rpx; 753 | right: 0; 754 | left: 0; 755 | border-top: 1rpx solid #eaeef1; 756 | -webkit-transform: scaleY(0.5); 757 | transform: scaleY(0.5); 758 | } 759 | 760 | .tui-list-content::after { 761 | content: ''; 762 | position: absolute; 763 | border-bottom: 1rpx solid #eaeef1; 764 | -webkit-transform: scaleY(0.5); 765 | transform: scaleY(0.5); 766 | bottom: 0; 767 | right: 0; 768 | left: 0; 769 | } 770 | 771 | .tui-border-top::after { 772 | border-top: 0; 773 | } 774 | 775 | .tui-border-bottom::after { 776 | border-bottom: 0; 777 | } 778 | 779 | .tui-border-all::after { 780 | border: 0; 781 | } 782 | 783 | .tui-list-cell { 784 | position: relative; 785 | background: #fff; 786 | width: 100%; 787 | padding: 26rpx 30rpx; 788 | box-sizing: border-box; 789 | overflow: hidden; 790 | display: flex; 791 | align-items: center; 792 | } 793 | 794 | .tui-list-cell.tui-padding-small { 795 | padding: 24rpx 30rpx; 796 | } 797 | 798 | .tui-cell-hover { 799 | background: #f7f7f9 !important; 800 | } 801 | 802 | .tui-list-cell::after { 803 | content: ''; 804 | position: absolute; 805 | border-bottom: 1rpx solid #eaeef1; 806 | -webkit-transform: scaleY(0.5); 807 | transform: scaleY(0.5); 808 | bottom: 0; 809 | right: 0; 810 | left: 30rpx; 811 | } 812 | 813 | .tui-cell-last::after { 814 | border-bottom: 0 !important; 815 | } 816 | 817 | .tui-list-cell.tui-cell-arrow:before { 818 | content: " "; 819 | height: 11px; 820 | width: 11px; 821 | border-width: 2px 2px 0 0; 822 | border-color: #b2b2b2; 823 | border-style: solid; 824 | -webkit-transform: matrix(0.5, 0.5, -0.5, 0.5, 0, 0); 825 | transform: matrix(0.5, 0.5, -0.5, 0.5, 0, 0); 826 | position: absolute; 827 | top: 50%; 828 | margin-top: -7px; 829 | right: 30rpx; 830 | } 831 | 832 | /* list end*/ 833 | 834 | /* card start*/ 835 | 836 | .tui-card { 837 | margin: 0 30rpx; 838 | font-size: 28rpx; 839 | overflow: hidden; 840 | background: #fff; 841 | border-radius: 10rpx; 842 | box-shadow: 0 0 10rpx #eee; 843 | } 844 | 845 | .tui-card-border { 846 | position: relative; 847 | box-shadow: none !important; 848 | } 849 | 850 | .tui-card-border::after { 851 | content: ''; 852 | position: absolute; 853 | height: 200%; 854 | width: 200%; 855 | border: 1px solid #eaeef1; 856 | transform-origin: 0 0; 857 | -webkit-transform-origin: 0 0; 858 | -webkit-transform: scale(0.5); 859 | transform: scale(0.5); 860 | left: 0; 861 | top: 0; 862 | border-radius: 20rpx; 863 | } 864 | 865 | .tui-card-header { 866 | padding: 20rpx; 867 | display: flex; 868 | align-items: center; 869 | justify-content: space-between; 870 | position: relative; 871 | } 872 | 873 | .tui-card-header::after { 874 | content: ''; 875 | position: absolute; 876 | border-bottom: 1rpx solid #eaeef1; 877 | -webkit-transform: scaleY(0.5); 878 | transform: scaleY(0.5); 879 | bottom: 0; 880 | right: 0; 881 | left: 0; 882 | } 883 | 884 | .tui-header-line::after { 885 | border-bottom: 0 !important; 886 | } 887 | 888 | .tui-header-thumb { 889 | height: 60rpx; 890 | width: 60rpx; 891 | vertical-align: middle; 892 | margin-right: 20rpx; 893 | border-radius: 6rpx; 894 | } 895 | 896 | .tui-thumb-circle { 897 | border-radius: 50% !important; 898 | } 899 | 900 | .tui-header-title { 901 | display: inline-block; 902 | font-size: 30rpx; 903 | color: #7a7a7a; 904 | vertical-align: middle; 905 | max-width: 460rpx; 906 | overflow: hidden; 907 | white-space: nowrap; 908 | text-overflow: ellipsis; 909 | } 910 | 911 | .tui-header-right { 912 | font-size: 24rpx; 913 | color: #b2b2b2; 914 | } 915 | 916 | .tui-card-body { 917 | font-size: 32rpx; 918 | color: #262b3a; 919 | } 920 | 921 | .tui-card-footer { 922 | font-size: 28rpx; 923 | color: #596d96; 924 | } 925 | 926 | /* card end*/ 927 | 928 | /* grid start*/ 929 | 930 | .tui-grids { 931 | width: 100%; 932 | position: relative; 933 | overflow: hidden; 934 | display: flex; 935 | display: -webkit-flex; 936 | /* justify-content: space-between; */ 937 | flex-direction: row; 938 | flex-wrap: wrap; 939 | } 940 | 941 | .tui-grids::after { 942 | content: " "; 943 | position: absolute; 944 | left: 0; 945 | top: 0; 946 | width: 100%; 947 | height: 1px; 948 | border-top: 1px solid #eaeef1; 949 | -webkit-transform-origin: 0 0; 950 | transform-origin: 0 0; 951 | -webkit-transform: scaleY(0.5); 952 | transform: scaleY(0.5); 953 | } 954 | 955 | .tui-grid { 956 | position: relative; 957 | padding: 40rpx 20rpx; 958 | box-sizing: border-box; 959 | background: #fff; 960 | } 961 | 962 | .tui-grid-2 { 963 | width: 50%; 964 | } 965 | 966 | .tui-grid-3 { 967 | width: 33.33333333%; 968 | } 969 | 970 | .tui-grid-4 { 971 | width: 25%; 972 | } 973 | 974 | .tui-grid-5 { 975 | width: 20%; 976 | } 977 | 978 | .tui-grid-2:nth-of-type(2n)::before { 979 | width: 0; 980 | border-right: 0; 981 | } 982 | 983 | .tui-grid-3:nth-of-type(3n)::before { 984 | width: 0; 985 | border-right: 0; 986 | } 987 | 988 | .tui-grid-4:nth-of-type(4n)::before { 989 | width: 0; 990 | border-right: 0; 991 | } 992 | 993 | .tui-grid-5:nth-of-type(5n)::before { 994 | width: 0; 995 | border-right: 0; 996 | } 997 | 998 | .tui-grid::before { 999 | content: " "; 1000 | position: absolute; 1001 | right: 0; 1002 | top: 0; 1003 | width: 1px; 1004 | bottom: 0; 1005 | border-right: 1px solid #eaeef1; 1006 | -webkit-transform-origin: 100% 0; 1007 | transform-origin: 100% 0; 1008 | -webkit-transform: scaleX(0.5); 1009 | transform: scaleX(0.5); 1010 | } 1011 | 1012 | .tui-grid::after { 1013 | content: " "; 1014 | position: absolute; 1015 | left: 0; 1016 | bottom: 0; 1017 | right: 0; 1018 | height: 1px; 1019 | border-bottom: 1px solid #eaeef1; 1020 | -webkit-transform-origin: 0 100%; 1021 | transform-origin: 0 100%; 1022 | -webkit-transform: scaleY(0.5); 1023 | transform: scaleY(0.5); 1024 | } 1025 | 1026 | .tui-grid-bg { 1027 | position: relative; 1028 | padding: 0; 1029 | width: 100%; 1030 | box-sizing: border-box; 1031 | } 1032 | 1033 | .tui-grid-icon { 1034 | width: 64rpx; 1035 | height: 64rpx; 1036 | margin: 0 auto; 1037 | } 1038 | 1039 | .tui-grid-icon image { 1040 | display: block; 1041 | width: 64rpx; 1042 | height: 64rpx; 1043 | } 1044 | 1045 | .tui-grid-icon+.tui-grid-label { 1046 | margin-top: 10rpx; 1047 | } 1048 | 1049 | .tui-grid-label { 1050 | display: block; 1051 | text-align: center; 1052 | font-weight: 400; 1053 | color: #333; 1054 | font-size: 28rpx; 1055 | white-space: nowrap; 1056 | overflow: hidden; 1057 | text-overflow: ellipsis; 1058 | } 1059 | 1060 | /* grid end*/ 1061 | 1062 | /* footer start*/ 1063 | 1064 | .tui-footer { 1065 | width: 100%; 1066 | overflow: hidden; 1067 | padding: 30rpx 24rpx; 1068 | box-sizing: border-box; 1069 | } 1070 | 1071 | .tui-fixed { 1072 | position: fixed; 1073 | bottom: 0; 1074 | } 1075 | 1076 | .tui-footer-link { 1077 | color: #596d96; 1078 | display: flex; 1079 | align-items: center; 1080 | justify-content: center; 1081 | font-size: 28rpx; 1082 | } 1083 | 1084 | .tui-link { 1085 | position: relative; 1086 | padding: 0 18rpx; 1087 | line-height: 1; 1088 | } 1089 | 1090 | .tui-link::before { 1091 | content: " "; 1092 | position: absolute; 1093 | right: 0; 1094 | top: 0; 1095 | width: 1px; 1096 | bottom: 0; 1097 | border-right: 1px solid #d3d3d3; 1098 | -webkit-transform-origin: 100% 0; 1099 | transform-origin: 100% 0; 1100 | -webkit-transform: scaleX(0.5); 1101 | transform: scaleX(0.5); 1102 | } 1103 | 1104 | .tui-link:last-child::before { 1105 | border-right: 0 !important; 1106 | } 1107 | 1108 | .tui-link-hover { 1109 | opacity: 0.5; 1110 | } 1111 | 1112 | .tui-footer-copyright { 1113 | font-size: 24rpx; 1114 | color: #a7a7a7; 1115 | line-height: 1; 1116 | text-align: center; 1117 | padding-top: 16rpx; 1118 | } 1119 | 1120 | /* footer end*/ 1121 | 1122 | /* custom start*/ 1123 | 1124 | .tui-triangle { 1125 | border: 16rpx solid; 1126 | width: 0; 1127 | height: 0; 1128 | } 1129 | 1130 | .tui-triangle-left { 1131 | border-color: transparent #5c8dff transparent transparent; 1132 | } 1133 | 1134 | .tui-triangle-right { 1135 | border-color: transparent transparent transparent #5c8dff; 1136 | } 1137 | 1138 | .tui-triangle-top { 1139 | border-color: transparent transparent #5c8dff transparent; 1140 | } 1141 | 1142 | .tui-triangle-bottom { 1143 | border-color: #5c8dff transparent transparent transparent; 1144 | } 1145 | 1146 | .tui-parallelogram { 1147 | width: 100rpx; 1148 | height: 50rpx; 1149 | transform: skew(-10deg); 1150 | background: #19be6b; 1151 | margin-left: 10rpx; 1152 | } 1153 | 1154 | .tui-crescent { 1155 | width: 60rpx; 1156 | height: 60rpx; 1157 | border-radius: 50%; 1158 | box-shadow: 12rpx 12rpx 0 0 yellowgreen; 1159 | } 1160 | 1161 | .tui-chatbox { 1162 | max-width: 60%; 1163 | border-radius: 10rpx; 1164 | position: relative; 1165 | padding: 20rpx 26rpx; 1166 | font-size: 28rpx; 1167 | color: #fff; 1168 | /* word-break: break-all; 1169 | word-wrap: break-word; */ 1170 | } 1171 | 1172 | .tui-chatbox-left { 1173 | background: #5c8dff; 1174 | border: 1rpx solid #5c8dff; 1175 | display: inline-block; 1176 | } 1177 | 1178 | .tui-chatbox-right { 1179 | background: #19be6b; 1180 | border: 1rpx solid #19be6b; 1181 | } 1182 | 1183 | .tui-chatbox::before { 1184 | content: ""; 1185 | position: absolute; 1186 | width: 0; 1187 | height: 0; 1188 | top: 20rpx; 1189 | border: 16rpx solid; 1190 | } 1191 | 1192 | .tui-chatbox-left::before { 1193 | right: 100%; 1194 | border-color: transparent #5c8dff transparent transparent; 1195 | } 1196 | 1197 | .tui-chatbox-right::before { 1198 | left: 100%; 1199 | border-color: transparent transparent transparent #19be6b; 1200 | } 1201 | 1202 | /*checkbox 整体大小 */ 1203 | 1204 | .tui-checkbox { 1205 | width: 36rpx; 1206 | height: 36rpx; 1207 | border-radius: 50%; 1208 | } 1209 | 1210 | /* #ifdef APP-PLUS || MP */ 1211 | /*checkbox 选项框大小 */ 1212 | 1213 | .tui-checkbox .wx-checkbox-input { 1214 | width: 36rpx; 1215 | height: 36rpx; 1216 | border-radius: 50%; 1217 | } 1218 | 1219 | /*checkbox选中后样式 */ 1220 | 1221 | .tui-checkbox .wx-checkbox-input.wx-checkbox-input-checked { 1222 | background: #5c8dff; 1223 | width: 38rpx !important; 1224 | height: 38rpx !important; 1225 | border: none; 1226 | } 1227 | 1228 | /*checkbox选中后图标样式 */ 1229 | 1230 | .tui-checkbox .wx-checkbox-input.wx-checkbox-input-checked::before { 1231 | width: 30rpx !important; 1232 | height: 30rpx !important; 1233 | line-height: 30rpx; 1234 | text-align: center; 1235 | font-size: 20rpx; 1236 | color: #fff; 1237 | background: transparent; 1238 | transform: translate(-50%, -50%); 1239 | -webkit-transform: translate(-50%, -50%); 1240 | } 1241 | 1242 | /* #endif */ 1243 | 1244 | /* #ifdef H5 */ 1245 | >>>.tui-checkbox .uni-checkbox-input { 1246 | width: 36rpx; 1247 | height: 36rpx; 1248 | border-radius: 50% !important; 1249 | } 1250 | 1251 | >>>.tui-checkbox .uni-checkbox-input.uni-checkbox-input-checked { 1252 | background: #5c8dff; 1253 | width: 38rpx !important; 1254 | height: 38rpx !important; 1255 | border: none; 1256 | } 1257 | 1258 | >>>.tui-checkbox .uni-checkbox-input.uni-checkbox-input-checked::before { 1259 | width: 30rpx !important; 1260 | height: 30rpx !important; 1261 | line-height: 30rpx; 1262 | text-align: center; 1263 | font-size: 20rpx; 1264 | color: #fff; 1265 | background: transparent; 1266 | transform: translate(-50%, -50%); 1267 | -webkit-transform: translate(-50%, -50%); 1268 | } 1269 | 1270 | /* #endif */ 1271 | 1272 | 1273 | .tui-cells { 1274 | /* border: 1rpx solid #e6e6e6; */ 1275 | border-radius: 4rpx; 1276 | height: 280rpx; 1277 | box-sizing: border-box; 1278 | padding: 20rpx 20rpx 0 20rpx; 1279 | position: relative; 1280 | } 1281 | 1282 | .tui-cells::after { 1283 | content: ''; 1284 | position: absolute; 1285 | height: 200%; 1286 | width: 200%; 1287 | border: 1px solid #e6e6e6; 1288 | transform-origin: 0 0; 1289 | -webkit-transform-origin: 0 0; 1290 | -webkit-transform: scale(0.5); 1291 | transform: scale(0.5); 1292 | left: 0; 1293 | top: 0; 1294 | border-radius: 8rpx; 1295 | } 1296 | 1297 | .tui-textarea { 1298 | height: 210rpx; 1299 | width: 100%; 1300 | color: #666; 1301 | font-size: 28rpx; 1302 | } 1303 | 1304 | .tui-phcolor-color { 1305 | color: #ccc !important; 1306 | } 1307 | 1308 | .tui-textarea-counter { 1309 | font-size: 24rpx; 1310 | color: #999; 1311 | text-align: right; 1312 | height: 40rpx; 1313 | line-height: 40rpx; 1314 | padding-top: 4rpx; 1315 | } 1316 | 1317 | .tui-upload-box { 1318 | display: flex; 1319 | display: -webkit-flex; 1320 | flex-direction: row; 1321 | flex-wrap: wrap; 1322 | } 1323 | 1324 | .tui-upload-item { 1325 | width: 153rpx; 1326 | height: 153rpx; 1327 | border: 1rpx solid #e6e6e6; 1328 | box-sizing: border-box; 1329 | border-radius: 4rpx; 1330 | position: relative; 1331 | margin-bottom: 36rpx; 1332 | margin-right: 26rpx; 1333 | } 1334 | 1335 | .tui-upload-item:nth-of-type(4n) { 1336 | margin-right: 0 !important; 1337 | } 1338 | 1339 | .tui-upload-img { 1340 | width: 153rpx; 1341 | height: 153rpx; 1342 | border-radius: 4rpx; 1343 | } 1344 | 1345 | .tui-upload-del { 1346 | position: absolute; 1347 | /* font-size: 24px !important; */ 1348 | right: -18rpx; 1349 | top: -18rpx; 1350 | /* color: #ed3f14 !important; */ 1351 | } 1352 | 1353 | .tui-upload-add { 1354 | color: #e6e6e6; 1355 | font-weight: 200; 1356 | display: flex; 1357 | align-items: center; 1358 | justify-content: center; 1359 | } 1360 | 1361 | .tui-upload-add text { 1362 | font-size: 84rpx; 1363 | line-height: 38rpx; 1364 | height: 48rpx; 1365 | } 1366 | 1367 | .tui-operation { 1368 | width: 100%; 1369 | height: 100rpx; 1370 | box-sizing: border-box; 1371 | overflow: hidden; 1372 | background: rgba(255, 255, 255, 0.9); 1373 | position: relative; 1374 | display: flex; 1375 | align-items: center; 1376 | justify-content: space-between; 1377 | } 1378 | 1379 | .tui-operation::before { 1380 | content: ''; 1381 | position: absolute; 1382 | top: 0px; 1383 | right: 0; 1384 | left: 0; 1385 | border-top: 1rpx solid #eaeef1; 1386 | -webkit-transform: scaleY(0.5); 1387 | transform: scaleY(0.5); 1388 | } 1389 | 1390 | .tui-operation-left { 1391 | display: flex; 1392 | align-items: center; 1393 | } 1394 | 1395 | .tui-operation-item { 1396 | flex: 1; 1397 | display: flex; 1398 | align-items: center; 1399 | justify-content: center; 1400 | flex-direction: column; 1401 | position: relative; 1402 | } 1403 | 1404 | .tui-operation-text { 1405 | font-size: 22rpx; 1406 | color: #333; 1407 | } 1408 | 1409 | .tui-operation-right { 1410 | height: 100rpx; 1411 | box-sizing: border-box; 1412 | padding-top: 0; 1413 | } 1414 | 1415 | .tui-operation .tui-badge-class { 1416 | position: absolute; 1417 | top: -6rpx; 1418 | /* #ifdef H5 */ 1419 | transform:translateX(50%) scale(0.8); 1420 | /* #endif */ 1421 | } 1422 | 1423 | .tui-btnbox-1 .tui-btn-class { 1424 | height: 100rpx !important; 1425 | line-height: 100rpx !important; 1426 | border-radius: 0 1427 | } 1428 | 1429 | .tui-btnbox-2 .tui-btn-class { 1430 | height: 100rpx !important; 1431 | line-height: 100rpx !important; 1432 | font-size: 30rpx !important; 1433 | width: 50% !important; 1434 | border-radius: 0 1435 | } 1436 | 1437 | .tui-right-flex { 1438 | display: flex; 1439 | align-items: center; 1440 | justify-content: center; 1441 | } 1442 | 1443 | .tui-btnbox-3 .tui-btn-class { 1444 | display: block !important; 1445 | font-size: 28rpx !important; 1446 | /* #ifdef APP-PLUS || MP */ 1447 | width: 120% !important; 1448 | /* #endif */ 1449 | /* #ifdef H5 */ 1450 | width: 70% !important; 1451 | /* #endif */ 1452 | } 1453 | 1454 | .tui-btnbox-4 .tui-btn-class { 1455 | width: 90% !important; 1456 | display: block !important; 1457 | font-size: 28rpx !important; 1458 | } 1459 | 1460 | .tui-btn-comment { 1461 | height: 64rpx; 1462 | width: 84%; 1463 | background: #ededed; 1464 | color: #999; 1465 | border-radius: 8rpx; 1466 | font-size: 28rpx; 1467 | display: flex; 1468 | align-items: center; 1469 | padding-left: 20rpx; 1470 | box-sizing: border-box; 1471 | padding-top: 0; 1472 | margin-left: 30rpx; 1473 | } 1474 | 1475 | .tui-chat-operation { 1476 | background: #F6F6F6 !important; 1477 | padding-right: 18rpx; 1478 | box-sizing: border-box; 1479 | } 1480 | 1481 | .tui-input-box { 1482 | width: 78%; 1483 | justify-content: flex-start; 1484 | } 1485 | 1486 | .tui-chat-input { 1487 | background: #fff; 1488 | height: 72rpx; 1489 | border-radius: 6rpx; 1490 | padding-left: 20rpx; 1491 | padding-right: 20rpx; 1492 | flex: 1; 1493 | } 1494 | 1495 | .tui-voice-icon { 1496 | margin-left: 12rpx; 1497 | margin-right: 12rpx 1498 | } 1499 | 1500 | /* custom end*/ 1501 | -------------------------------------------------------------------------------- /common/icon.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; 3 | src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); 4 | font-weight: normal; 5 | font-style: normal; 6 | } 7 | .tui-icon { 8 | font-family: "iconfont" !important; 9 | font-size: 30px; 10 | font-style: normal; 11 | -webkit-font-smoothing: antialiased; 12 | -moz-osx-font-smoothing: grayscale; 13 | display: inline-block; 14 | color: #999; 15 | vertical-align: middle; 16 | line-height: 1; 17 | padding-top: -1px; 18 | margin-bottom: 1px; 19 | } 20 | 21 | .tui-icon-friendadd:before { 22 | content: "\e6ca"; 23 | } 24 | 25 | .tui-icon-friendadd-fill:before { 26 | content: "\e6c9"; 27 | } 28 | 29 | .tui-icon-service:before { 30 | content: "\e664"; 31 | } 32 | 33 | .tui-icon-service-fill:before { 34 | content: "\e665"; 35 | } 36 | 37 | .tui-icon-explore:before { 38 | content: "\e666"; 39 | } 40 | 41 | .tui-icon-explore-fill:before { 42 | content: "\e667"; 43 | } 44 | 45 | .tui-icon-wealth:before { 46 | content: "\e668"; 47 | } 48 | 49 | .tui-icon-wealth-fill:before { 50 | content: "\e669"; 51 | } 52 | 53 | .tui-icon-exchange:before { 54 | content: "\e638"; 55 | } 56 | 57 | .tui-icon-refresh:before { 58 | content: "\e640"; 59 | } 60 | 61 | .tui-icon-search:before { 62 | content: "\e622"; 63 | } 64 | .tui-icon-search-2:before { 65 | content: "\e634"; 66 | } 67 | 68 | .tui-icon-todown:before { 69 | content: "\e64f"; 70 | } 71 | 72 | .tui-icon-toleft:before { 73 | content: "\e650"; 74 | } 75 | 76 | .tui-icon-toright:before { 77 | content: "\e651"; 78 | } 79 | 80 | .tui-icon-video:before { 81 | content: "\e657"; 82 | } 83 | 84 | .tui-icon-people:before { 85 | content: "\e736"; 86 | } 87 | 88 | .tui-icon-people-fill:before { 89 | content: "\e735"; 90 | } 91 | 92 | .tui-icon-community:before { 93 | content: "\e741"; 94 | } 95 | 96 | .tui-icon-community-fill:before { 97 | content: "\e740"; 98 | } 99 | 100 | .tui-icon-ios:before { 101 | content: "\e66a"; 102 | } 103 | 104 | .tui-icon-android:before { 105 | content: "\e66c"; 106 | } 107 | 108 | .tui-icon-square:before { 109 | content: "\e720"; 110 | } 111 | 112 | .tui-icon-square-fill:before { 113 | content: "\e721"; 114 | } 115 | 116 | .tui-icon-square-selected:before { 117 | content: "\e722"; 118 | } 119 | 120 | .tui-icon-close:before { 121 | content: "\e725"; 122 | } 123 | 124 | .tui-icon-close-fill:before { 125 | content: "\e724"; 126 | } 127 | 128 | .tui-icon-shut:before { 129 | content: "\e723"; 130 | } 131 | 132 | .tui-icon-plus:before { 133 | content: "\e727"; 134 | } 135 | 136 | .tui-icon-add:before { 137 | content: "\e726"; 138 | } 139 | 140 | .tui-icon-add-fill:before { 141 | content: "\e728"; 142 | } 143 | 144 | .tui-icon-reduce:before { 145 | content: "\e729"; 146 | } 147 | 148 | .tui-icon-about:before { 149 | content: "\e72b"; 150 | } 151 | 152 | .tui-icon-about-fill:before { 153 | content: "\e72a"; 154 | } 155 | 156 | .tui-icon-explain:before { 157 | content: "\e72d"; 158 | } 159 | 160 | .tui-icon-explain-fill:before { 161 | content: "\e72c"; 162 | } 163 | 164 | .tui-icon-check:before { 165 | content: "\e72e"; 166 | } 167 | 168 | .tui-icon-circle:before { 169 | content: "\e72f"; 170 | } 171 | 172 | .tui-icon-circle-fill:before { 173 | content: "\e732"; 174 | } 175 | 176 | .tui-icon-circle-selected:before { 177 | content: "\e733"; 178 | } 179 | 180 | .tui-icon-star:before { 181 | content: "\e737"; 182 | } 183 | 184 | .tui-icon-star-fill:before { 185 | content: "\e734"; 186 | } 187 | 188 | .tui-icon-revoke:before { 189 | content: "\e738"; 190 | } 191 | 192 | .tui-icon-shop:before { 193 | content: "\e73a"; 194 | } 195 | 196 | .tui-icon-shop-fill:before { 197 | content: "\e739"; 198 | } 199 | 200 | .tui-icon-order:before { 201 | content: "\e73b"; 202 | } 203 | 204 | .tui-icon-feedback:before { 205 | content: "\e73c"; 206 | } 207 | 208 | .tui-icon-share:before { 209 | content: "\e75c"; 210 | } 211 | 212 | .tui-icon-share-fill:before { 213 | content: "\e75b"; 214 | } 215 | 216 | .tui-icon-more:before { 217 | content: "\e633"; 218 | } 219 | 220 | .tui-icon-more-fill:before { 221 | content: "\eb98"; 222 | } 223 | 224 | .tui-icon-strategy:before { 225 | content: "\e73f"; 226 | } 227 | 228 | .tui-icon-cart:before { 229 | content: "\e743"; 230 | } 231 | 232 | .tui-icon-cart-fill:before { 233 | content: "\e742"; 234 | } 235 | 236 | .tui-icon-sweep:before { 237 | content: "\e74b"; 238 | } 239 | 240 | .tui-icon-screen:before { 241 | content: "\e74c"; 242 | } 243 | 244 | .tui-icon-clock:before { 245 | content: "\e750"; 246 | } 247 | 248 | .tui-icon-clock-fill:before { 249 | content: "\e74f"; 250 | } 251 | 252 | .tui-icon-home:before { 253 | content: "\e752"; 254 | } 255 | 256 | .tui-icon-home-fill:before { 257 | content: "\e751"; 258 | } 259 | 260 | .tui-icon-category:before { 261 | content: "\e754"; 262 | } 263 | 264 | .tui-icon-category-fill:before { 265 | content: "\e753"; 266 | } 267 | 268 | .tui-icon-notice:before { 269 | content: "\e759"; 270 | } 271 | 272 | .tui-icon-notice-fill:before { 273 | content: "\e758"; 274 | } 275 | 276 | .tui-icon-like:before { 277 | content: "\e761"; 278 | } 279 | 280 | .tui-icon-like-fill:before { 281 | content: "\e760"; 282 | } 283 | 284 | .tui-icon-bottom:before { 285 | content: "\e76a"; 286 | } 287 | 288 | .tui-icon-top:before { 289 | content: "\e76c"; 290 | } 291 | 292 | .tui-icon-towardsright:before { 293 | content: "\e778"; 294 | } 295 | 296 | .tui-icon-towardsright-fill:before { 297 | content: "\e777"; 298 | } 299 | 300 | .tui-icon-towardsleft:before { 301 | content: "\e77a"; 302 | } 303 | 304 | .tui-icon-camera:before { 305 | content: "\e77f"; 306 | } 307 | 308 | .tui-icon-camera-fill:before { 309 | content: "\e77e"; 310 | } 311 | 312 | .tui-icon-camera-add:before { 313 | content: "\e780"; 314 | } 315 | 316 | .tui-icon-loading:before { 317 | content: "\e781"; 318 | } 319 | 320 | .tui-icon-wifi:before { 321 | content: "\e783"; 322 | } 323 | 324 | .tui-icon-agree:before { 325 | content: "\e794"; 326 | } 327 | 328 | .tui-icon-agree-fill:before { 329 | content: "\e793"; 330 | } 331 | 332 | .tui-icon-mobile:before { 333 | content: "\e655"; 334 | } 335 | 336 | .tui-icon-qrcode:before { 337 | content: "\e605"; 338 | } 339 | 340 | .tui-icon-coupon:before { 341 | content: "\e600"; 342 | } 343 | 344 | .tui-icon-back:before { 345 | content: "\e7ed"; 346 | } 347 | 348 | .tui-icon-transport:before { 349 | content: "\e882"; 350 | } 351 | 352 | .tui-icon-transport-fill:before { 353 | content: "\e883"; 354 | } 355 | 356 | .tui-icon-send:before { 357 | content: "\e893"; 358 | } 359 | 360 | .tui-icon-bankcard:before { 361 | content: "\e937"; 362 | } 363 | 364 | .tui-icon-bankcard-fill:before { 365 | content: "\e936"; 366 | } 367 | 368 | .tui-icon-eye:before { 369 | content: "\e6cf"; 370 | } 371 | 372 | .tui-icon-calendar:before { 373 | content: "\eb93"; 374 | } 375 | 376 | .tui-icon-picture:before { 377 | content: "\e6c7"; 378 | } 379 | 380 | .tui-icon-oppose:before { 381 | content: "\e815"; 382 | } 383 | 384 | .tui-icon-oppose-fill:before { 385 | content: "\e814"; 386 | } 387 | 388 | .tui-icon-pie:before { 389 | content: "\eb95"; 390 | } 391 | 392 | .tui-icon-polygonal:before { 393 | content: "\eb96"; 394 | } 395 | 396 | .tui-icon-histogram:before { 397 | content: "\eb99"; 398 | } 399 | 400 | .tui-icon-down:before { 401 | content: "\ec0b"; 402 | } 403 | 404 | .tui-icon-up:before { 405 | content: "\ec0c"; 406 | } 407 | 408 | .tui-icon-narrow:before { 409 | content: "\ec13"; 410 | } 411 | 412 | .tui-icon-enlarge:before { 413 | content: "\ec14"; 414 | } 415 | 416 | .tui-icon-pwd:before { 417 | content: "\e626"; 418 | } 419 | 420 | .tui-icon-ellipsis:before { 421 | content: "\e76b"; 422 | } 423 | 424 | .tui-icon-location:before { 425 | content: "\e7f2"; 426 | } 427 | 428 | .tui-icon-delete:before { 429 | content: "\e608"; 430 | } 431 | 432 | .tui-icon-card:before { 433 | content: "\e91c"; 434 | } 435 | 436 | .tui-icon-card-fill:before { 437 | content: "\e91b"; 438 | } 439 | 440 | .tui-icon-alarm:before { 441 | content: "\e6e9"; 442 | } 443 | 444 | .tui-icon-alarm-fill:before { 445 | content: "\e6e8"; 446 | } 447 | 448 | .tui-icon-computer:before { 449 | content: "\e6ec"; 450 | } 451 | 452 | .tui-icon-computer-fill:before { 453 | content: "\e6eb"; 454 | } 455 | 456 | .tui-icon-position:before { 457 | content: "\e8fe"; 458 | } 459 | 460 | .tui-icon-position-fill:before { 461 | content: "\e8ff"; 462 | } 463 | 464 | .tui-icon-member:before { 465 | content: "\e704"; 466 | } 467 | 468 | .tui-icon-member-fill:before { 469 | content: "\e703"; 470 | } 471 | 472 | .tui-icon-label:before { 473 | content: "\e707"; 474 | } 475 | 476 | .tui-icon-label-fill:before { 477 | content: "\e708"; 478 | } 479 | 480 | .tui-icon-mail:before { 481 | content: "\e70b"; 482 | } 483 | 484 | .tui-icon-mail-fill:before { 485 | content: "\e70c"; 486 | } 487 | 488 | .tui-icon-manage:before { 489 | content: "\e70e"; 490 | } 491 | 492 | .tui-icon-manage-fill:before { 493 | content: "\e70d"; 494 | } 495 | 496 | .tui-icon-message:before { 497 | content: "\e70f"; 498 | } 499 | 500 | .tui-icon-message-fill:before { 501 | content: "\e710"; 502 | } 503 | 504 | .tui-icon-offline:before { 505 | content: "\e716"; 506 | } 507 | 508 | .tui-icon-offline-fill:before { 509 | content: "\e715"; 510 | } 511 | 512 | .tui-icon-redpacket:before { 513 | content: "\e71e"; 514 | } 515 | 516 | .tui-icon-redpacket-fill:before { 517 | content: "\e71d"; 518 | } 519 | 520 | .tui-icon-bag:before { 521 | content: "\e756"; 522 | } 523 | 524 | .tui-icon-bag-fill:before { 525 | content: "\e755"; 526 | } 527 | 528 | .tui-icon-setup:before { 529 | content: "\e75a"; 530 | } 531 | 532 | .tui-icon-setup-fill:before { 533 | content: "\e757"; 534 | } 535 | 536 | .tui-icon-news:before { 537 | content: "\e75e"; 538 | } 539 | 540 | .tui-icon-news-fill:before { 541 | content: "\e75d"; 542 | } 543 | 544 | .tui-icon-time:before { 545 | content: "\e764"; 546 | } 547 | 548 | .tui-icon-time-fill:before { 549 | content: "\e75f"; 550 | } 551 | 552 | .tui-icon-voice:before { 553 | content: "\e766"; 554 | } 555 | 556 | .tui-icon-voice-fill:before { 557 | content: "\e765"; 558 | } 559 | 560 | .tui-icon-nodata:before { 561 | content: "\e611"; 562 | } 563 | 564 | .tui-icon-link:before { 565 | content: "\eb97"; 566 | } 567 | 568 | .tui-icon-edit:before { 569 | content: "\e69a"; 570 | } 571 | 572 | .tui-icon-unseen:before { 573 | content: "\e6a2"; 574 | } 575 | 576 | .tui-icon-arrowup:before { 577 | content: "\e658"; 578 | } 579 | 580 | .tui-icon-arrowleft:before { 581 | content: "\e659"; 582 | } 583 | 584 | .tui-icon-arrowdown:before { 585 | content: "\e65a"; 586 | } 587 | 588 | .tui-icon-arrowright:before { 589 | content: "\e65b"; 590 | } 591 | 592 | .tui-icon-turningleft:before { 593 | content: "\e65c"; 594 | } 595 | 596 | .tui-icon-turningright:before { 597 | content: "\e65d"; 598 | } 599 | 600 | .tui-icon-turningup:before { 601 | content: "\e65e"; 602 | } 603 | 604 | .tui-icon-turningdown:before { 605 | content: "\e65f"; 606 | } 607 | 608 | .tui-icon-sina:before { 609 | content: "\e662"; 610 | } 611 | 612 | .tui-icon-applets:before { 613 | content: "\e673"; 614 | } 615 | 616 | .tui-icon-wechat:before { 617 | content: "\e674"; 618 | } 619 | 620 | .tui-icon-dingtalk:before { 621 | content: "\e675"; 622 | } 623 | 624 | .tui-icon-alipay:before { 625 | content: "\e677"; 626 | } 627 | .tui-icon-skin:before { 628 | content: "\eb9e"; 629 | } 630 | .tui-icon-house:before { 631 | content: "\eb9f"; 632 | } 633 | .tui-icon-download:before { 634 | content: "\e602"; 635 | } 636 | .tui-icon-upload:before { 637 | content: "\e63b"; 638 | } 639 | .tui-icon-kefu:before { 640 | content: "\e601"; 641 | } 642 | 643 | .tui-icon-sport:before { 644 | content: "\eba0"; 645 | } 646 | .tui-icon-gps:before { 647 | content: "\eb9a"; 648 | } 649 | .tui-icon-shield:before { 650 | content: "\eba3"; 651 | } 652 | .tui-icon-voipphone:before { 653 | content: "\eba2"; 654 | } 655 | .tui-icon-wallet:before { 656 | content: "\eb92"; 657 | } 658 | .tui-icon-attestation:before { 659 | content: "\eb91"; 660 | } 661 | .tui-icon-addressbook:before { 662 | content: "\eb90"; 663 | } 664 | .tui-icon-addmessage:before { 665 | content: "\eb8f"; 666 | } 667 | .tui-icon-signin:before { 668 | content: "\e643"; 669 | } 670 | .tui-icon-evaluate:before { 671 | content: "\e642"; 672 | } 673 | .tui-icon-unreceive:before { 674 | content: "\e641"; 675 | } 676 | .tui-icon-balloon:before { 677 | content: "\e627"; 678 | } 679 | .tui-icon-partake:before { 680 | content: "\e603"; 681 | } 682 | .tui-icon-listview:before { 683 | content: "\e67b"; 684 | } 685 | 686 | .tui-icon-weather:before { 687 | content: "\e694"; 688 | } 689 | .tui-icon-tool:before { 690 | content: "\e61b"; 691 | } 692 | .tui-icon-imface:before { 693 | content: "\eb9b"; 694 | } 695 | 696 | .tui-icon-deletekey:before { 697 | content: "\e7b8"; 698 | } 699 | .tui-icon-fingerprint:before { 700 | content: "\e66e"; 701 | } 702 | 703 | 704 | .tui-icon-warning:before { 705 | content: "\e8eb"; 706 | } 707 | 708 | .tui-icon-soso:before { 709 | content: "\e8da"; 710 | } 711 | 712 | .tui-icon-satisfied:before { 713 | content: "\e8db"; 714 | } 715 | 716 | .tui-icon-dissatisfied:before { 717 | content: "\e8dc"; 718 | } 719 | 720 | .tui-icon-pic:before { 721 | content: "\e8d2"; 722 | } 723 | 724 | .tui-icon-pic-fill:before { 725 | content: "\e8d3"; 726 | } 727 | 728 | .tui-icon-play:before { 729 | content: "\e606"; 730 | } -------------------------------------------------------------------------------- /components/icon/icon.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 44 | 45 | 810 | --------------------------------------------------------------------------------