├── LICENSE ├── README.md ├── cloudfunctions └── getOpenid │ ├── index.js │ └── package.json ├── miniprogram ├── app.js ├── app.json ├── app.wxss ├── colorui │ ├── animation.wxss │ ├── icon.wxss │ └── main.wxss ├── images │ ├── arrow-r.png │ ├── logo.jpg │ ├── notice.png │ ├── owl-login-arm.png │ ├── owl-login.png │ ├── responsor.png │ └── up.png ├── pages │ ├── about │ │ ├── about.js │ │ ├── about.json │ │ ├── about.wxml │ │ └── about.wxss │ ├── kb │ │ ├── kb.js │ │ ├── kb.json │ │ ├── kb.wxml │ │ └── kb.wxss │ ├── login │ │ ├── login.js │ │ ├── login.json │ │ ├── login.wxml │ │ └── login.wxss │ ├── more │ │ ├── more.js │ │ ├── more.json │ │ ├── more.wxml │ │ └── more.wxss │ ├── score │ │ ├── score.js │ │ ├── score.json │ │ ├── score.wxml │ │ └── score.wxss │ ├── scoreList │ │ ├── scoreList.js │ │ ├── scoreList.json │ │ ├── scoreList.wxml │ │ └── scoreList.wxss │ └── updateinfo │ │ ├── updateinfo.js │ │ ├── updateinfo.json │ │ ├── updateinfo.wxml │ │ └── updateinfo.wxss ├── project.config.json ├── sitemap.json └── utils │ └── util.js └── project.config.json /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CSUTeachingMiniprogram 2 | 中南教务通小程序源码 3 | -------------------------------------------------------------------------------- /cloudfunctions/getOpenid/index.js: -------------------------------------------------------------------------------- 1 | // 云函数入口文件 2 | const cloud = require('wx-server-sdk') 3 | 4 | cloud.init() 5 | 6 | // 云函数入口函数 7 | //获取用户的openid 8 | exports.main = async (event, context) => { 9 | return event.userInfo; //返回用户信息 10 | } 11 | -------------------------------------------------------------------------------- /cloudfunctions/getOpenid/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "getOpenid", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "wx-server-sdk": "latest" 13 | } 14 | } -------------------------------------------------------------------------------- /miniprogram/app.js: -------------------------------------------------------------------------------- 1 | //app.js 2 | App({ 3 | onLaunch: function () { 4 | if (!wx.cloud) { 5 | console.error('请使用 2.2.3 或以上的基础库以使用云能力') 6 | } else { 7 | wx.cloud.init({ 8 | env: 'env-vavp9', 9 | traceUser: true, 10 | }) 11 | } 12 | }, 13 | 14 | }) -------------------------------------------------------------------------------- /miniprogram/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/login/login", 4 | "pages/score/score", 5 | "pages/kb/kb", 6 | "pages/about/about", 7 | "pages/scoreList/scoreList", 8 | "pages/updateinfo/updateinfo", 9 | "pages/more/more" 10 | ], 11 | "window": { 12 | "backgroundTextStyle": "dark", 13 | "navigationBarTitleText": "中南教务通", 14 | "navigationBarBackgroundColor": "#7cba23", 15 | "navigationBarTextStyle": "white" 16 | }, 17 | "tabBar": { 18 | "backgroundColor": "#FAFAFA", 19 | "borderStyle": "white", 20 | "color": "#b2b2b2", 21 | "selectedColor": "#7cba23", 22 | "list": [ 23 | { 24 | "pagePath": "pages/score/score", 25 | "text": "我的成绩" 26 | }, 27 | { 28 | "pagePath": "pages/kb/kb", 29 | "text": "我的课表" 30 | }, 31 | { 32 | "pagePath": "pages/more/more", 33 | "text": "关于程序" 34 | } 35 | ] 36 | }, 37 | "sitemapLocation": "sitemap.json" 38 | } -------------------------------------------------------------------------------- /miniprogram/app.wxss: -------------------------------------------------------------------------------- 1 | .container { 2 | height: 100%; 3 | display: flex; 4 | flex-direction: column; 5 | align-items: center; 6 | justify-content: space-between; 7 | padding: 200rpx 0; 8 | box-sizing: border-box; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /miniprogram/colorui/animation.wxss: -------------------------------------------------------------------------------- 1 | /* 2 | Animation 微动画 3 | 基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28 4 | */ 5 | 6 | /* css 滤镜 控制黑白底色gif的 */ 7 | .gif-black{ 8 | mix-blend-mode: screen; 9 | } 10 | .gif-white{ 11 | mix-blend-mode: multiply; 12 | } 13 | 14 | 15 | /* Animation css */ 16 | [class*=animation-] { 17 | animation-duration: .5s; 18 | animation-timing-function: ease-out; 19 | animation-fill-mode: both 20 | } 21 | 22 | .animation-fade { 23 | animation-name: fade; 24 | animation-duration: .8s; 25 | animation-timing-function: linear 26 | } 27 | 28 | .animation-scale-up { 29 | animation-name: scale-up 30 | } 31 | 32 | .animation-scale-down { 33 | animation-name: scale-down 34 | } 35 | 36 | .animation-slide-top { 37 | animation-name: slide-top 38 | } 39 | 40 | .animation-slide-bottom { 41 | animation-name: slide-bottom 42 | } 43 | 44 | .animation-slide-left { 45 | animation-name: slide-left 46 | } 47 | 48 | .animation-slide-right { 49 | animation-name: slide-right 50 | } 51 | 52 | .animation-shake { 53 | animation-name: shake 54 | } 55 | 56 | .animation-reverse { 57 | animation-direction: reverse 58 | } 59 | 60 | @keyframes fade { 61 | 0% { 62 | opacity: 0 63 | } 64 | 65 | 100% { 66 | opacity: 1 67 | } 68 | } 69 | 70 | @keyframes scale-up { 71 | 0% { 72 | opacity: 0; 73 | transform: scale(.2) 74 | } 75 | 76 | 100% { 77 | opacity: 1; 78 | transform: scale(1) 79 | } 80 | } 81 | 82 | @keyframes scale-down { 83 | 0% { 84 | opacity: 0; 85 | transform: scale(1.8) 86 | } 87 | 88 | 100% { 89 | opacity: 1; 90 | transform: scale(1) 91 | } 92 | } 93 | 94 | @keyframes slide-top { 95 | 0% { 96 | opacity: 0; 97 | transform: translateY(-100%) 98 | } 99 | 100 | 100% { 101 | opacity: 1; 102 | transform: translateY(0) 103 | } 104 | } 105 | 106 | @keyframes slide-bottom { 107 | 0% { 108 | opacity: 0; 109 | transform: translateY(100%) 110 | } 111 | 112 | 100% { 113 | opacity: 1; 114 | transform: translateY(0) 115 | } 116 | } 117 | 118 | @keyframes shake { 119 | 120 | 0%, 121 | 100% { 122 | transform: translateX(0) 123 | } 124 | 125 | 10% { 126 | transform: translateX(-9px) 127 | } 128 | 129 | 20% { 130 | transform: translateX(8px) 131 | } 132 | 133 | 30% { 134 | transform: translateX(-7px) 135 | } 136 | 137 | 40% { 138 | transform: translateX(6px) 139 | } 140 | 141 | 50% { 142 | transform: translateX(-5px) 143 | } 144 | 145 | 60% { 146 | transform: translateX(4px) 147 | } 148 | 149 | 70% { 150 | transform: translateX(-3px) 151 | } 152 | 153 | 80% { 154 | transform: translateX(2px) 155 | } 156 | 157 | 90% { 158 | transform: translateX(-1px) 159 | } 160 | } 161 | 162 | @keyframes slide-left { 163 | 0% { 164 | opacity: 0; 165 | transform: translateX(-100%) 166 | } 167 | 168 | 100% { 169 | opacity: 1; 170 | transform: translateX(0) 171 | } 172 | } 173 | 174 | @keyframes slide-right { 175 | 0% { 176 | opacity: 0; 177 | transform: translateX(100%) 178 | } 179 | 180 | 100% { 181 | opacity: 1; 182 | transform: translateX(0) 183 | } 184 | } -------------------------------------------------------------------------------- /miniprogram/colorui/icon.wxss: -------------------------------------------------------------------------------- 1 | @keyframes cuIcon-spin { 2 | 0% { 3 | -webkit-transform: rotate(0); 4 | transform: rotate(0); 5 | } 6 | 7 | 100% { 8 | -webkit-transform: rotate(359deg); 9 | transform: rotate(359deg); 10 | } 11 | } 12 | 13 | .iconfont-spin { 14 | -webkit-animation: cuIcon-spin 2s infinite linear; 15 | animation: cuIcon-spin 2s infinite linear; 16 | display: inline-block; 17 | } 18 | 19 | .iconfont-pulse { 20 | -webkit-animation: cuIcon-spin 1s infinite steps(8); 21 | animation: cuIcon-spin 1s infinite steps(8); 22 | display: inline-block; 23 | } 24 | 25 | [class*="cuIcon-"] { 26 | font-family: "cuIcon"; 27 | font-size: inherit; 28 | font-style: normal; 29 | } 30 | 31 | @font-face { 32 | font-family: "cuIcon"; 33 | src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831'); 34 | /* IE9*/ 35 | src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'), 36 | /* IE6-IE8 */ 37 | url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), 38 | url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'), 39 | /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ 40 | url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#iconfont') format('svg'); 41 | /* iOS 4.1- */ 42 | } 43 | 44 | .cuIcon-appreciate:before { 45 | content: "\e644"; 46 | } 47 | 48 | .cuIcon-check:before { 49 | content: "\e645"; 50 | } 51 | 52 | .cuIcon-close:before { 53 | content: "\e646"; 54 | } 55 | 56 | .cuIcon-edit:before { 57 | content: "\e649"; 58 | } 59 | 60 | .cuIcon-emoji:before { 61 | content: "\e64a"; 62 | } 63 | 64 | .cuIcon-favorfill:before { 65 | content: "\e64b"; 66 | } 67 | 68 | .cuIcon-favor:before { 69 | content: "\e64c"; 70 | } 71 | 72 | .cuIcon-loading:before { 73 | content: "\e64f"; 74 | } 75 | 76 | .cuIcon-locationfill:before { 77 | content: "\e650"; 78 | } 79 | 80 | .cuIcon-location:before { 81 | content: "\e651"; 82 | } 83 | 84 | .cuIcon-phone:before { 85 | content: "\e652"; 86 | } 87 | 88 | .cuIcon-roundcheckfill:before { 89 | content: "\e656"; 90 | } 91 | 92 | .cuIcon-roundcheck:before { 93 | content: "\e657"; 94 | } 95 | 96 | .cuIcon-roundclosefill:before { 97 | content: "\e658"; 98 | } 99 | 100 | .cuIcon-roundclose:before { 101 | content: "\e659"; 102 | } 103 | 104 | .cuIcon-roundrightfill:before { 105 | content: "\e65a"; 106 | } 107 | 108 | .cuIcon-roundright:before { 109 | content: "\e65b"; 110 | } 111 | 112 | .cuIcon-search:before { 113 | content: "\e65c"; 114 | } 115 | 116 | .cuIcon-taxi:before { 117 | content: "\e65d"; 118 | } 119 | 120 | .cuIcon-timefill:before { 121 | content: "\e65e"; 122 | } 123 | 124 | .cuIcon-time:before { 125 | content: "\e65f"; 126 | } 127 | 128 | .cuIcon-unfold:before { 129 | content: "\e661"; 130 | } 131 | 132 | .cuIcon-warnfill:before { 133 | content: "\e662"; 134 | } 135 | 136 | .cuIcon-warn:before { 137 | content: "\e663"; 138 | } 139 | 140 | .cuIcon-camerafill:before { 141 | content: "\e664"; 142 | } 143 | 144 | .cuIcon-camera:before { 145 | content: "\e665"; 146 | } 147 | 148 | .cuIcon-commentfill:before { 149 | content: "\e666"; 150 | } 151 | 152 | .cuIcon-comment:before { 153 | content: "\e667"; 154 | } 155 | 156 | .cuIcon-likefill:before { 157 | content: "\e668"; 158 | } 159 | 160 | .cuIcon-like:before { 161 | content: "\e669"; 162 | } 163 | 164 | .cuIcon-notificationfill:before { 165 | content: "\e66a"; 166 | } 167 | 168 | .cuIcon-notification:before { 169 | content: "\e66b"; 170 | } 171 | 172 | .cuIcon-order:before { 173 | content: "\e66c"; 174 | } 175 | 176 | .cuIcon-samefill:before { 177 | content: "\e66d"; 178 | } 179 | 180 | .cuIcon-same:before { 181 | content: "\e66e"; 182 | } 183 | 184 | .cuIcon-deliver:before { 185 | content: "\e671"; 186 | } 187 | 188 | .cuIcon-evaluate:before { 189 | content: "\e672"; 190 | } 191 | 192 | .cuIcon-pay:before { 193 | content: "\e673"; 194 | } 195 | 196 | .cuIcon-send:before { 197 | content: "\e675"; 198 | } 199 | 200 | .cuIcon-shop:before { 201 | content: "\e676"; 202 | } 203 | 204 | .cuIcon-ticket:before { 205 | content: "\e677"; 206 | } 207 | 208 | .cuIcon-back:before { 209 | content: "\e679"; 210 | } 211 | 212 | .cuIcon-cascades:before { 213 | content: "\e67c"; 214 | } 215 | 216 | .cuIcon-discover:before { 217 | content: "\e67e"; 218 | } 219 | 220 | .cuIcon-list:before { 221 | content: "\e682"; 222 | } 223 | 224 | .cuIcon-more:before { 225 | content: "\e684"; 226 | } 227 | 228 | .cuIcon-scan:before { 229 | content: "\e689"; 230 | } 231 | 232 | .cuIcon-settings:before { 233 | content: "\e68a"; 234 | } 235 | 236 | .cuIcon-questionfill:before { 237 | content: "\e690"; 238 | } 239 | 240 | .cuIcon-question:before { 241 | content: "\e691"; 242 | } 243 | 244 | .cuIcon-shopfill:before { 245 | content: "\e697"; 246 | } 247 | 248 | .cuIcon-form:before { 249 | content: "\e699"; 250 | } 251 | 252 | .cuIcon-pic:before { 253 | content: "\e69b"; 254 | } 255 | 256 | .cuIcon-filter:before { 257 | content: "\e69c"; 258 | } 259 | 260 | .cuIcon-footprint:before { 261 | content: "\e69d"; 262 | } 263 | 264 | .cuIcon-top:before { 265 | content: "\e69e"; 266 | } 267 | 268 | .cuIcon-pulldown:before { 269 | content: "\e69f"; 270 | } 271 | 272 | .cuIcon-pullup:before { 273 | content: "\e6a0"; 274 | } 275 | 276 | .cuIcon-right:before { 277 | content: "\e6a3"; 278 | } 279 | 280 | .cuIcon-refresh:before { 281 | content: "\e6a4"; 282 | } 283 | 284 | .cuIcon-moreandroid:before { 285 | content: "\e6a5"; 286 | } 287 | 288 | .cuIcon-deletefill:before { 289 | content: "\e6a6"; 290 | } 291 | 292 | .cuIcon-refund:before { 293 | content: "\e6ac"; 294 | } 295 | 296 | .cuIcon-cart:before { 297 | content: "\e6af"; 298 | } 299 | 300 | .cuIcon-qrcode:before { 301 | content: "\e6b0"; 302 | } 303 | 304 | .cuIcon-remind:before { 305 | content: "\e6b2"; 306 | } 307 | 308 | .cuIcon-delete:before { 309 | content: "\e6b4"; 310 | } 311 | 312 | .cuIcon-profile:before { 313 | content: "\e6b7"; 314 | } 315 | 316 | .cuIcon-home:before { 317 | content: "\e6b8"; 318 | } 319 | 320 | .cuIcon-cartfill:before { 321 | content: "\e6b9"; 322 | } 323 | 324 | .cuIcon-discoverfill:before { 325 | content: "\e6ba"; 326 | } 327 | 328 | .cuIcon-homefill:before { 329 | content: "\e6bb"; 330 | } 331 | 332 | .cuIcon-message:before { 333 | content: "\e6bc"; 334 | } 335 | 336 | .cuIcon-addressbook:before { 337 | content: "\e6bd"; 338 | } 339 | 340 | .cuIcon-link:before { 341 | content: "\e6bf"; 342 | } 343 | 344 | .cuIcon-lock:before { 345 | content: "\e6c0"; 346 | } 347 | 348 | .cuIcon-unlock:before { 349 | content: "\e6c2"; 350 | } 351 | 352 | .cuIcon-vip:before { 353 | content: "\e6c3"; 354 | } 355 | 356 | .cuIcon-weibo:before { 357 | content: "\e6c4"; 358 | } 359 | 360 | .cuIcon-activity:before { 361 | content: "\e6c5"; 362 | } 363 | 364 | .cuIcon-friendaddfill:before { 365 | content: "\e6c9"; 366 | } 367 | 368 | .cuIcon-friendadd:before { 369 | content: "\e6ca"; 370 | } 371 | 372 | .cuIcon-friendfamous:before { 373 | content: "\e6cb"; 374 | } 375 | 376 | .cuIcon-friend:before { 377 | content: "\e6cc"; 378 | } 379 | 380 | .cuIcon-goods:before { 381 | content: "\e6cd"; 382 | } 383 | 384 | .cuIcon-selection:before { 385 | content: "\e6ce"; 386 | } 387 | 388 | .cuIcon-explore:before { 389 | content: "\e6d2"; 390 | } 391 | 392 | .cuIcon-present:before { 393 | content: "\e6d3"; 394 | } 395 | 396 | .cuIcon-squarecheckfill:before { 397 | content: "\e6d4"; 398 | } 399 | 400 | .cuIcon-square:before { 401 | content: "\e6d5"; 402 | } 403 | 404 | .cuIcon-squarecheck:before { 405 | content: "\e6d6"; 406 | } 407 | 408 | .cuIcon-round:before { 409 | content: "\e6d7"; 410 | } 411 | 412 | .cuIcon-roundaddfill:before { 413 | content: "\e6d8"; 414 | } 415 | 416 | .cuIcon-roundadd:before { 417 | content: "\e6d9"; 418 | } 419 | 420 | .cuIcon-add:before { 421 | content: "\e6da"; 422 | } 423 | 424 | .cuIcon-notificationforbidfill:before { 425 | content: "\e6db"; 426 | } 427 | 428 | .cuIcon-explorefill:before { 429 | content: "\e6dd"; 430 | } 431 | 432 | .cuIcon-fold:before { 433 | content: "\e6de"; 434 | } 435 | 436 | .cuIcon-game:before { 437 | content: "\e6df"; 438 | } 439 | 440 | .cuIcon-redpacket:before { 441 | content: "\e6e0"; 442 | } 443 | 444 | .cuIcon-selectionfill:before { 445 | content: "\e6e1"; 446 | } 447 | 448 | .cuIcon-similar:before { 449 | content: "\e6e2"; 450 | } 451 | 452 | .cuIcon-appreciatefill:before { 453 | content: "\e6e3"; 454 | } 455 | 456 | .cuIcon-infofill:before { 457 | content: "\e6e4"; 458 | } 459 | 460 | .cuIcon-info:before { 461 | content: "\e6e5"; 462 | } 463 | 464 | .cuIcon-forwardfill:before { 465 | content: "\e6ea"; 466 | } 467 | 468 | .cuIcon-forward:before { 469 | content: "\e6eb"; 470 | } 471 | 472 | .cuIcon-rechargefill:before { 473 | content: "\e6ec"; 474 | } 475 | 476 | .cuIcon-recharge:before { 477 | content: "\e6ed"; 478 | } 479 | 480 | .cuIcon-vipcard:before { 481 | content: "\e6ee"; 482 | } 483 | 484 | .cuIcon-voice:before { 485 | content: "\e6ef"; 486 | } 487 | 488 | .cuIcon-voicefill:before { 489 | content: "\e6f0"; 490 | } 491 | 492 | .cuIcon-friendfavor:before { 493 | content: "\e6f1"; 494 | } 495 | 496 | .cuIcon-wifi:before { 497 | content: "\e6f2"; 498 | } 499 | 500 | .cuIcon-share:before { 501 | content: "\e6f3"; 502 | } 503 | 504 | .cuIcon-wefill:before { 505 | content: "\e6f4"; 506 | } 507 | 508 | .cuIcon-we:before { 509 | content: "\e6f5"; 510 | } 511 | 512 | .cuIcon-lightauto:before { 513 | content: "\e6f6"; 514 | } 515 | 516 | .cuIcon-lightforbid:before { 517 | content: "\e6f7"; 518 | } 519 | 520 | .cuIcon-lightfill:before { 521 | content: "\e6f8"; 522 | } 523 | 524 | .cuIcon-camerarotate:before { 525 | content: "\e6f9"; 526 | } 527 | 528 | .cuIcon-light:before { 529 | content: "\e6fa"; 530 | } 531 | 532 | .cuIcon-barcode:before { 533 | content: "\e6fb"; 534 | } 535 | 536 | .cuIcon-flashlightclose:before { 537 | content: "\e6fc"; 538 | } 539 | 540 | .cuIcon-flashlightopen:before { 541 | content: "\e6fd"; 542 | } 543 | 544 | .cuIcon-searchlist:before { 545 | content: "\e6fe"; 546 | } 547 | 548 | .cuIcon-service:before { 549 | content: "\e6ff"; 550 | } 551 | 552 | .cuIcon-sort:before { 553 | content: "\e700"; 554 | } 555 | 556 | .cuIcon-down:before { 557 | content: "\e703"; 558 | } 559 | 560 | .cuIcon-mobile:before { 561 | content: "\e704"; 562 | } 563 | 564 | .cuIcon-mobilefill:before { 565 | content: "\e705"; 566 | } 567 | 568 | .cuIcon-copy:before { 569 | content: "\e706"; 570 | } 571 | 572 | .cuIcon-countdownfill:before { 573 | content: "\e707"; 574 | } 575 | 576 | .cuIcon-countdown:before { 577 | content: "\e708"; 578 | } 579 | 580 | .cuIcon-noticefill:before { 581 | content: "\e709"; 582 | } 583 | 584 | .cuIcon-notice:before { 585 | content: "\e70a"; 586 | } 587 | 588 | .cuIcon-upstagefill:before { 589 | content: "\e70e"; 590 | } 591 | 592 | .cuIcon-upstage:before { 593 | content: "\e70f"; 594 | } 595 | 596 | .cuIcon-babyfill:before { 597 | content: "\e710"; 598 | } 599 | 600 | .cuIcon-baby:before { 601 | content: "\e711"; 602 | } 603 | 604 | .cuIcon-brandfill:before { 605 | content: "\e712"; 606 | } 607 | 608 | .cuIcon-brand:before { 609 | content: "\e713"; 610 | } 611 | 612 | .cuIcon-choicenessfill:before { 613 | content: "\e714"; 614 | } 615 | 616 | .cuIcon-choiceness:before { 617 | content: "\e715"; 618 | } 619 | 620 | .cuIcon-clothesfill:before { 621 | content: "\e716"; 622 | } 623 | 624 | .cuIcon-clothes:before { 625 | content: "\e717"; 626 | } 627 | 628 | .cuIcon-creativefill:before { 629 | content: "\e718"; 630 | } 631 | 632 | .cuIcon-creative:before { 633 | content: "\e719"; 634 | } 635 | 636 | .cuIcon-female:before { 637 | content: "\e71a"; 638 | } 639 | 640 | .cuIcon-keyboard:before { 641 | content: "\e71b"; 642 | } 643 | 644 | .cuIcon-male:before { 645 | content: "\e71c"; 646 | } 647 | 648 | .cuIcon-newfill:before { 649 | content: "\e71d"; 650 | } 651 | 652 | .cuIcon-new:before { 653 | content: "\e71e"; 654 | } 655 | 656 | .cuIcon-pullleft:before { 657 | content: "\e71f"; 658 | } 659 | 660 | .cuIcon-pullright:before { 661 | content: "\e720"; 662 | } 663 | 664 | .cuIcon-rankfill:before { 665 | content: "\e721"; 666 | } 667 | 668 | .cuIcon-rank:before { 669 | content: "\e722"; 670 | } 671 | 672 | .cuIcon-bad:before { 673 | content: "\e723"; 674 | } 675 | 676 | .cuIcon-cameraadd:before { 677 | content: "\e724"; 678 | } 679 | 680 | .cuIcon-focus:before { 681 | content: "\e725"; 682 | } 683 | 684 | .cuIcon-friendfill:before { 685 | content: "\e726"; 686 | } 687 | 688 | .cuIcon-cameraaddfill:before { 689 | content: "\e727"; 690 | } 691 | 692 | .cuIcon-apps:before { 693 | content: "\e729"; 694 | } 695 | 696 | .cuIcon-paintfill:before { 697 | content: "\e72a"; 698 | } 699 | 700 | .cuIcon-paint:before { 701 | content: "\e72b"; 702 | } 703 | 704 | .cuIcon-picfill:before { 705 | content: "\e72c"; 706 | } 707 | 708 | .cuIcon-refresharrow:before { 709 | content: "\e72d"; 710 | } 711 | 712 | .cuIcon-colorlens:before { 713 | content: "\e6e6"; 714 | } 715 | 716 | .cuIcon-markfill:before { 717 | content: "\e730"; 718 | } 719 | 720 | .cuIcon-mark:before { 721 | content: "\e731"; 722 | } 723 | 724 | .cuIcon-presentfill:before { 725 | content: "\e732"; 726 | } 727 | 728 | .cuIcon-repeal:before { 729 | content: "\e733"; 730 | } 731 | 732 | .cuIcon-album:before { 733 | content: "\e734"; 734 | } 735 | 736 | .cuIcon-peoplefill:before { 737 | content: "\e735"; 738 | } 739 | 740 | .cuIcon-people:before { 741 | content: "\e736"; 742 | } 743 | 744 | .cuIcon-servicefill:before { 745 | content: "\e737"; 746 | } 747 | 748 | .cuIcon-repair:before { 749 | content: "\e738"; 750 | } 751 | 752 | .cuIcon-file:before { 753 | content: "\e739"; 754 | } 755 | 756 | .cuIcon-repairfill:before { 757 | content: "\e73a"; 758 | } 759 | 760 | .cuIcon-taoxiaopu:before { 761 | content: "\e73b"; 762 | } 763 | 764 | .cuIcon-weixin:before { 765 | content: "\e612"; 766 | } 767 | 768 | .cuIcon-attentionfill:before { 769 | content: "\e73c"; 770 | } 771 | 772 | .cuIcon-attention:before { 773 | content: "\e73d"; 774 | } 775 | 776 | .cuIcon-commandfill:before { 777 | content: "\e73e"; 778 | } 779 | 780 | .cuIcon-command:before { 781 | content: "\e73f"; 782 | } 783 | 784 | .cuIcon-communityfill:before { 785 | content: "\e740"; 786 | } 787 | 788 | .cuIcon-community:before { 789 | content: "\e741"; 790 | } 791 | 792 | .cuIcon-read:before { 793 | content: "\e742"; 794 | } 795 | 796 | .cuIcon-calendar:before { 797 | content: "\e74a"; 798 | } 799 | 800 | .cuIcon-cut:before { 801 | content: "\e74b"; 802 | } 803 | 804 | .cuIcon-magic:before { 805 | content: "\e74c"; 806 | } 807 | 808 | .cuIcon-backwardfill:before { 809 | content: "\e74d"; 810 | } 811 | 812 | .cuIcon-playfill:before { 813 | content: "\e74f"; 814 | } 815 | 816 | .cuIcon-stop:before { 817 | content: "\e750"; 818 | } 819 | 820 | .cuIcon-tagfill:before { 821 | content: "\e751"; 822 | } 823 | 824 | .cuIcon-tag:before { 825 | content: "\e752"; 826 | } 827 | 828 | .cuIcon-group:before { 829 | content: "\e753"; 830 | } 831 | 832 | .cuIcon-all:before { 833 | content: "\e755"; 834 | } 835 | 836 | .cuIcon-backdelete:before { 837 | content: "\e756"; 838 | } 839 | 840 | .cuIcon-hotfill:before { 841 | content: "\e757"; 842 | } 843 | 844 | .cuIcon-hot:before { 845 | content: "\e758"; 846 | } 847 | 848 | .cuIcon-post:before { 849 | content: "\e759"; 850 | } 851 | 852 | .cuIcon-radiobox:before { 853 | content: "\e75b"; 854 | } 855 | 856 | .cuIcon-rounddown:before { 857 | content: "\e75c"; 858 | } 859 | 860 | .cuIcon-upload:before { 861 | content: "\e75d"; 862 | } 863 | 864 | .cuIcon-writefill:before { 865 | content: "\e760"; 866 | } 867 | 868 | .cuIcon-write:before { 869 | content: "\e761"; 870 | } 871 | 872 | .cuIcon-radioboxfill:before { 873 | content: "\e763"; 874 | } 875 | 876 | .cuIcon-punch:before { 877 | content: "\e764"; 878 | } 879 | 880 | .cuIcon-shake:before { 881 | content: "\e765"; 882 | } 883 | 884 | .cuIcon-move:before { 885 | content: "\e768"; 886 | } 887 | 888 | .cuIcon-safe:before { 889 | content: "\e769"; 890 | } 891 | 892 | .cuIcon-activityfill:before { 893 | content: "\e775"; 894 | } 895 | 896 | .cuIcon-crownfill:before { 897 | content: "\e776"; 898 | } 899 | 900 | .cuIcon-crown:before { 901 | content: "\e777"; 902 | } 903 | 904 | .cuIcon-goodsfill:before { 905 | content: "\e778"; 906 | } 907 | 908 | .cuIcon-messagefill:before { 909 | content: "\e779"; 910 | } 911 | 912 | .cuIcon-profilefill:before { 913 | content: "\e77a"; 914 | } 915 | 916 | .cuIcon-sound:before { 917 | content: "\e77b"; 918 | } 919 | 920 | .cuIcon-sponsorfill:before { 921 | content: "\e77c"; 922 | } 923 | 924 | .cuIcon-sponsor:before { 925 | content: "\e77d"; 926 | } 927 | 928 | .cuIcon-upblock:before { 929 | content: "\e77e"; 930 | } 931 | 932 | .cuIcon-weblock:before { 933 | content: "\e77f"; 934 | } 935 | 936 | .cuIcon-weunblock:before { 937 | content: "\e780"; 938 | } 939 | 940 | .cuIcon-my:before { 941 | content: "\e78b"; 942 | } 943 | 944 | .cuIcon-myfill:before { 945 | content: "\e78c"; 946 | } 947 | 948 | .cuIcon-emojifill:before { 949 | content: "\e78d"; 950 | } 951 | 952 | .cuIcon-emojiflashfill:before { 953 | content: "\e78e"; 954 | } 955 | 956 | .cuIcon-flashbuyfill:before { 957 | content: "\e78f"; 958 | } 959 | 960 | .cuIcon-text:before { 961 | content: "\e791"; 962 | } 963 | 964 | .cuIcon-goodsfavor:before { 965 | content: "\e794"; 966 | } 967 | 968 | .cuIcon-musicfill:before { 969 | content: "\e795"; 970 | } 971 | 972 | .cuIcon-musicforbidfill:before { 973 | content: "\e796"; 974 | } 975 | 976 | .cuIcon-card:before { 977 | content: "\e624"; 978 | } 979 | 980 | .cuIcon-triangledownfill:before { 981 | content: "\e79b"; 982 | } 983 | 984 | .cuIcon-triangleupfill:before { 985 | content: "\e79c"; 986 | } 987 | 988 | .cuIcon-roundleftfill-copy:before { 989 | content: "\e79e"; 990 | } 991 | 992 | .cuIcon-font:before { 993 | content: "\e76a"; 994 | } 995 | 996 | .cuIcon-title:before { 997 | content: "\e82f"; 998 | } 999 | 1000 | .cuIcon-recordfill:before { 1001 | content: "\e7a4"; 1002 | } 1003 | 1004 | .cuIcon-record:before { 1005 | content: "\e7a6"; 1006 | } 1007 | 1008 | .cuIcon-cardboardfill:before { 1009 | content: "\e7a9"; 1010 | } 1011 | 1012 | .cuIcon-cardboard:before { 1013 | content: "\e7aa"; 1014 | } 1015 | 1016 | .cuIcon-formfill:before { 1017 | content: "\e7ab"; 1018 | } 1019 | 1020 | .cuIcon-coin:before { 1021 | content: "\e7ac"; 1022 | } 1023 | 1024 | .cuIcon-cardboardforbid:before { 1025 | content: "\e7af"; 1026 | } 1027 | 1028 | .cuIcon-circlefill:before { 1029 | content: "\e7b0"; 1030 | } 1031 | 1032 | .cuIcon-circle:before { 1033 | content: "\e7b1"; 1034 | } 1035 | 1036 | .cuIcon-attentionforbid:before { 1037 | content: "\e7b2"; 1038 | } 1039 | 1040 | .cuIcon-attentionforbidfill:before { 1041 | content: "\e7b3"; 1042 | } 1043 | 1044 | .cuIcon-attentionfavorfill:before { 1045 | content: "\e7b4"; 1046 | } 1047 | 1048 | .cuIcon-attentionfavor:before { 1049 | content: "\e7b5"; 1050 | } 1051 | 1052 | .cuIcon-titles:before { 1053 | content: "\e701"; 1054 | } 1055 | 1056 | .cuIcon-icloading:before { 1057 | content: "\e67a"; 1058 | } 1059 | 1060 | .cuIcon-full:before { 1061 | content: "\e7bc"; 1062 | } 1063 | 1064 | .cuIcon-mail:before { 1065 | content: "\e7bd"; 1066 | } 1067 | 1068 | .cuIcon-peoplelist:before { 1069 | content: "\e7be"; 1070 | } 1071 | 1072 | .cuIcon-goodsnewfill:before { 1073 | content: "\e7bf"; 1074 | } 1075 | 1076 | .cuIcon-goodsnew:before { 1077 | content: "\e7c0"; 1078 | } 1079 | 1080 | .cuIcon-medalfill:before { 1081 | content: "\e7c1"; 1082 | } 1083 | 1084 | .cuIcon-medal:before { 1085 | content: "\e7c2"; 1086 | } 1087 | 1088 | .cuIcon-newsfill:before { 1089 | content: "\e7c3"; 1090 | } 1091 | 1092 | .cuIcon-newshotfill:before { 1093 | content: "\e7c4"; 1094 | } 1095 | 1096 | .cuIcon-newshot:before { 1097 | content: "\e7c5"; 1098 | } 1099 | 1100 | .cuIcon-news:before { 1101 | content: "\e7c6"; 1102 | } 1103 | 1104 | .cuIcon-videofill:before { 1105 | content: "\e7c7"; 1106 | } 1107 | 1108 | .cuIcon-video:before { 1109 | content: "\e7c8"; 1110 | } 1111 | 1112 | .cuIcon-exit:before { 1113 | content: "\e7cb"; 1114 | } 1115 | 1116 | .cuIcon-skinfill:before { 1117 | content: "\e7cc"; 1118 | } 1119 | 1120 | .cuIcon-skin:before { 1121 | content: "\e7cd"; 1122 | } 1123 | 1124 | .cuIcon-moneybagfill:before { 1125 | content: "\e7ce"; 1126 | } 1127 | 1128 | .cuIcon-usefullfill:before { 1129 | content: "\e7cf"; 1130 | } 1131 | 1132 | .cuIcon-usefull:before { 1133 | content: "\e7d0"; 1134 | } 1135 | 1136 | .cuIcon-moneybag:before { 1137 | content: "\e7d1"; 1138 | } 1139 | 1140 | .cuIcon-redpacket_fill:before { 1141 | content: "\e7d3"; 1142 | } 1143 | 1144 | .cuIcon-subscription:before { 1145 | content: "\e7d4"; 1146 | } 1147 | 1148 | .cuIcon-loading1:before { 1149 | content: "\e633"; 1150 | } 1151 | 1152 | .cuIcon-github:before { 1153 | content: "\e692"; 1154 | } 1155 | 1156 | .cuIcon-global:before { 1157 | content: "\e7eb"; 1158 | } 1159 | 1160 | .cuIcon-settingsfill:before { 1161 | content: "\e6ab"; 1162 | } 1163 | 1164 | .cuIcon-back_android:before { 1165 | content: "\e7ed"; 1166 | } 1167 | 1168 | .cuIcon-expressman:before { 1169 | content: "\e7ef"; 1170 | } 1171 | 1172 | .cuIcon-evaluate_fill:before { 1173 | content: "\e7f0"; 1174 | } 1175 | 1176 | .cuIcon-group_fill:before { 1177 | content: "\e7f5"; 1178 | } 1179 | 1180 | .cuIcon-play_forward_fill:before { 1181 | content: "\e7f6"; 1182 | } 1183 | 1184 | .cuIcon-deliver_fill:before { 1185 | content: "\e7f7"; 1186 | } 1187 | 1188 | .cuIcon-notice_forbid_fill:before { 1189 | content: "\e7f8"; 1190 | } 1191 | 1192 | .cuIcon-fork:before { 1193 | content: "\e60c"; 1194 | } 1195 | 1196 | .cuIcon-pick:before { 1197 | content: "\e7fa"; 1198 | } 1199 | 1200 | .cuIcon-wenzi:before { 1201 | content: "\e6a7"; 1202 | } 1203 | 1204 | .cuIcon-ellipse:before { 1205 | content: "\e600"; 1206 | } 1207 | 1208 | .cuIcon-qr_code:before { 1209 | content: "\e61b"; 1210 | } 1211 | 1212 | .cuIcon-dianhua:before { 1213 | content: "\e64d"; 1214 | } 1215 | 1216 | .cuIcon-icon:before { 1217 | content: "\e602"; 1218 | } 1219 | 1220 | .cuIcon-loading2:before { 1221 | content: "\e7f1"; 1222 | } 1223 | 1224 | .cuIcon-btn:before { 1225 | content: "\e601"; 1226 | } 1227 | -------------------------------------------------------------------------------- /miniprogram/colorui/main.wxss: -------------------------------------------------------------------------------- 1 | /* 2 | ColorUi for MP-weixin v2.1.4 | by 文晓港 2019年4月25日19:15:42 3 | 仅供学习交流,如作它用所承受的法律责任一概与作者无关 4 | 使用ColorUi开发扩展与插件时,请注明基于ColorUi开发 5 | 6 | (QQ交流群:240787041) 7 | */ 8 | 9 | /* ================== 10 | 初始化 11 | ==================== */ 12 | page { 13 | /* Color 可以自定义相关配色 */ 14 | /* var属性兼容性 --> https://www.caniuse.com/#feat=css-variables */ 15 | /* 标准色 */ 16 | --red: #e54d42; 17 | --orange: #f37b1d; 18 | --yellow: #fbbd08; 19 | --olive: #8dc63f; 20 | --green: #7cba23; 21 | --cyan: #1cbbb4; 22 | --blue: #7cba23; 23 | --purple: #6739b6; 24 | --mauve: #9c26b0; 25 | --pink: #e03997; 26 | --brown: #a5673f; 27 | --grey: #8799a3; 28 | --black: #333333; 29 | --darkGray: #666666; 30 | --gray: #aaaaaa; 31 | --ghostWhite: #f1f1f1; 32 | --white: #ffffff; 33 | /* 浅色 */ 34 | --redLight: #fadbd9; 35 | --orangeLight: #fde6d2; 36 | --yellowLight: #fef2ce; 37 | --oliveLight: #e8f4d9; 38 | --greenLight: #d7f0db; 39 | --cyanLight: #d2f1f0; 40 | --blueLight: #cce6ff; 41 | --purpleLight: #e1d7f0; 42 | --mauveLight: #ebd4ef; 43 | --pinkLight: #f9d7ea; 44 | --brownLight: #ede1d9; 45 | --greyLight: #e7ebed; 46 | /* 渐变色 */ 47 | --gradualRed: linear-gradient(45deg, #f43f3b, #ec008c); 48 | --gradualOrange: linear-gradient(45deg, #ff9700, #ed1c24); 49 | --gradualGreen: linear-gradient(45deg, #39b54a, #8dc63f); 50 | --gradualPurple: linear-gradient(45deg, #9000ff, #5e00ff); 51 | --gradualPink: linear-gradient(45deg, #ec008c, #6739b6); 52 | --gradualBlue: linear-gradient(45deg, #0081ff, #1cbbb4); 53 | /* 阴影透明色 */ 54 | --ShadowSize: 6rpx 6rpx 8rpx; 55 | --redShadow: rgba(204, 69, 59, 0.2); 56 | --orangeShadow: rgba(217, 109, 26, 0.2); 57 | --yellowShadow: rgba(224, 170, 7, 0.2); 58 | --oliveShadow: rgba(124, 173, 55, 0.2); 59 | --greenShadow: rgba(48, 156, 63, 0.2); 60 | --cyanShadow: rgba(28, 187, 180, 0.2); 61 | --blueShadow: rgba(0, 102, 204, 0.2); 62 | --purpleShadow: rgba(88, 48, 156, 0.2); 63 | --mauveShadow: rgba(133, 33, 150, 0.2); 64 | --pinkShadow: rgba(199, 50, 134, 0.2); 65 | --brownShadow: rgba(140, 88, 53, 0.2); 66 | --greyShadow: rgba(114, 130, 138, 0.2); 67 | --grayShadow: rgba(114, 130, 138, 0.2); 68 | --blackShadow: rgba(26, 26, 26, 0.2); 69 | 70 | background-color: var(--ghostWhite); 71 | font-size: 28rpx; 72 | color: var(--black); 73 | font-family: Helvetica Neue, Helvetica, sans-serif; 74 | } 75 | 76 | view, 77 | scroll-view, 78 | swiper, 79 | button, 80 | input, 81 | textarea, 82 | label, 83 | navigator, 84 | image { 85 | box-sizing: border-box; 86 | } 87 | 88 | .round { 89 | border-radius: 5000rpx; 90 | } 91 | 92 | .radius { 93 | border-radius: 6rpx; 94 | } 95 | 96 | /* ================== 97 | 图片 98 | ==================== */ 99 | 100 | image { 101 | max-width: 100%; 102 | display: inline-block; 103 | position: relative; 104 | z-index: 0; 105 | } 106 | 107 | image.loading::before { 108 | content: ""; 109 | background-color: #f5f5f5; 110 | display: block; 111 | position: absolute; 112 | width: 100%; 113 | height: 100%; 114 | z-index: -2; 115 | } 116 | 117 | image.loading::after { 118 | content: "\e7f1"; 119 | font-family: "cuIcon"; 120 | position: absolute; 121 | top: 0; 122 | left: 0; 123 | width: 32rpx; 124 | height: 32rpx; 125 | line-height: 32rpx; 126 | right: 0; 127 | bottom: 0; 128 | z-index: -1; 129 | font-size: 32rpx; 130 | margin: auto; 131 | color: #ccc; 132 | -webkit-animation: cuIcon-spin 2s infinite linear; 133 | animation: cuIcon-spin 2s infinite linear; 134 | display: block; 135 | } 136 | 137 | .response { 138 | width: 100%; 139 | } 140 | 141 | /* ================== 142 | 开关 143 | ==================== */ 144 | 145 | switch, 146 | checkbox, 147 | radio { 148 | position: relative; 149 | } 150 | 151 | switch::after, 152 | switch::before { 153 | font-family: "cuIcon"; 154 | content: "\e645"; 155 | position: absolute; 156 | color: var(--white) !important; 157 | top: 0%; 158 | left: 0rpx; 159 | font-size: 26rpx; 160 | line-height: 26px; 161 | width: 50%; 162 | text-align: center; 163 | pointer-events: none; 164 | transform: scale(0, 0); 165 | transition: all 0.3s ease-in-out 0s; 166 | z-index: 9; 167 | bottom: 0; 168 | height: 26px; 169 | margin: auto; 170 | } 171 | 172 | switch::before { 173 | content: "\e646"; 174 | right: 0; 175 | transform: scale(1, 1); 176 | left: auto; 177 | } 178 | 179 | switch[checked]::after, 180 | switch.checked::after { 181 | transform: scale(1, 1); 182 | } 183 | 184 | switch[checked]::before, 185 | switch.checked::before { 186 | transform: scale(0, 0); 187 | } 188 | 189 | switch[checked]::before { 190 | transform: scale(0, 0); 191 | } 192 | 193 | radio::before, 194 | checkbox::before { 195 | font-family: "cuIcon"; 196 | content: "\e645"; 197 | position: absolute; 198 | color: var(--white) !important; 199 | top: 50%; 200 | margin-top: -8px; 201 | right: 5px; 202 | font-size: 32rpx; 203 | line-height: 16px; 204 | pointer-events: none; 205 | transform: scale(1, 1); 206 | transition: all 0.3s ease-in-out 0s; 207 | z-index: 9; 208 | } 209 | 210 | radio .wx-radio-input, 211 | checkbox .wx-checkbox-input { 212 | margin: 0; 213 | width: 24px; 214 | height: 24px; 215 | } 216 | 217 | checkbox.round .wx-checkbox-input { 218 | border-radius: 100rpx; 219 | } 220 | 221 | switch .wx-switch-input { 222 | border: none; 223 | padding: 0 24px; 224 | width: 48px; 225 | height: 26px; 226 | margin: 0; 227 | border-radius: 100rpx; 228 | } 229 | 230 | switch .wx-switch-input:not([class*="bg-"]) { 231 | background: var(--grey) !important; 232 | } 233 | 234 | switch .wx-switch-input::after { 235 | margin: auto; 236 | width: 26px; 237 | height: 26px; 238 | border-radius: 100rpx; 239 | left: 0rpx; 240 | top: 0rpx; 241 | bottom: 0rpx; 242 | position: absolute; 243 | transform: scale(0.9, 0.9); 244 | transition: all 0.1s ease-in-out 0s; 245 | } 246 | 247 | switch .wx-switch-input.wx-switch-input-checked::after { 248 | margin: auto; 249 | left: 22px; 250 | box-shadow: none; 251 | transform: scale(0.9, 0.9); 252 | } 253 | 254 | radio-group { 255 | display: inline-block; 256 | } 257 | 258 | 259 | 260 | switch.radius .wx-switch-input::after, 261 | switch.radius .wx-switch-input, 262 | switch.radius .wx-switch-input::before { 263 | border-radius: 10rpx; 264 | } 265 | 266 | switch .wx-switch-input::before, 267 | radio.radio::before, 268 | checkbox .wx-checkbox-input::before, 269 | radio .wx-radio-input::before, 270 | radio.radio::before { 271 | display: none; 272 | } 273 | 274 | radio.radio[checked]::after { 275 | content: ""; 276 | background-color: transparent; 277 | display: block; 278 | position: absolute; 279 | width: 8px; 280 | height: 8px; 281 | z-index: 999; 282 | top: 0rpx; 283 | left: 0rpx; 284 | right: 0; 285 | bottom: 0; 286 | margin: auto; 287 | border-radius: 200rpx; 288 | border: 8px solid var(--white) !important; 289 | } 290 | 291 | .switch-sex::after { 292 | content: "\e71c"; 293 | } 294 | 295 | .switch-sex::before { 296 | content: "\e71a"; 297 | } 298 | 299 | .switch-sex .wx-switch-input { 300 | background: var(--red) !important; 301 | border-color: var(--red) !important; 302 | } 303 | 304 | .switch-sex[checked] .wx-switch-input { 305 | background: var(--blue) !important; 306 | border-color: var(--blue) !important; 307 | } 308 | 309 | switch.red[checked] .wx-switch-input, 310 | checkbox.red[checked] .wx-checkbox-input, 311 | radio.red[checked] .wx-radio-input { 312 | border-color: var(--red) !important; 313 | } 314 | 315 | switch.orange[checked] .wx-switch-input, 316 | checkbox.orange[checked] .wx-checkbox-input, 317 | radio.orange[checked] .wx-radio-input { 318 | border-color: var(--orange) !important; 319 | } 320 | 321 | switch.yellow[checked] .wx-switch-input, 322 | checkbox.yellow[checked] .wx-checkbox-input, 323 | radio.yellow[checked] .wx-radio-input { 324 | border-color: var(--yellow) !important; 325 | } 326 | 327 | switch.olive[checked] .wx-switch-input, 328 | checkbox.olive[checked] .wx-checkbox-input, 329 | radio.olive[checked] .wx-radio-input { 330 | border-color: var(--olive) !important; 331 | } 332 | 333 | switch.green[checked] .wx-switch-input, 334 | checkbox.green[checked] .wx-checkbox-input, 335 | checkbox[checked] .wx-checkbox-input, 336 | radio.green[checked] .wx-radio-input { 337 | border-color: var(--green) !important; 338 | } 339 | 340 | switch.cyan[checked] .wx-switch-input, 341 | checkbox.cyan[checked] .wx-checkbox-input, 342 | radio.cyan[checked] .wx-radio-input { 343 | border-color: var(--cyan) !important; 344 | } 345 | 346 | switch.blue[checked] .wx-switch-input, 347 | checkbox.blue[checked] .wx-checkbox-input, 348 | radio.blue[checked] .wx-radio-input { 349 | border-color: var(--blue) !important; 350 | } 351 | 352 | switch.purple[checked] .wx-switch-input, 353 | checkbox.purple[checked] .wx-checkbox-input, 354 | radio.purple[checked] .wx-radio-input { 355 | border-color: var(--purple) !important; 356 | } 357 | 358 | switch.mauve[checked] .wx-switch-input, 359 | checkbox.mauve[checked] .wx-checkbox-input, 360 | radio.mauve[checked] .wx-radio-input { 361 | border-color: var(--mauve) !important; 362 | } 363 | 364 | switch.pink[checked] .wx-switch-input, 365 | checkbox.pink[checked] .wx-checkbox-input, 366 | radio.pink[checked] .wx-radio-input { 367 | border-color: var(--pink) !important; 368 | } 369 | 370 | switch.brown[checked] .wx-switch-input, 371 | checkbox.brown[checked] .wx-checkbox-input, 372 | radio.brown[checked] .wx-radio-input { 373 | border-color: var(--brown) !important; 374 | } 375 | 376 | switch.grey[checked] .wx-switch-input, 377 | checkbox.grey[checked] .wx-checkbox-input, 378 | radio.grey[checked] .wx-radio-input { 379 | border-color: var(--grey) !important; 380 | } 381 | 382 | switch.gray[checked] .wx-switch-input, 383 | checkbox.gray[checked] .wx-checkbox-input, 384 | radio.gray[checked] .wx-radio-input { 385 | border-color: var(--grey) !important; 386 | } 387 | 388 | switch.black[checked] .wx-switch-input, 389 | checkbox.black[checked] .wx-checkbox-input, 390 | radio.black[checked] .wx-radio-input { 391 | border-color: var(--black) !important; 392 | } 393 | 394 | switch.white[checked] .wx-switch-input, 395 | checkbox.white[checked] .wx-checkbox-input, 396 | radio.white[checked] .wx-radio-input { 397 | border-color: var(--white) !important; 398 | } 399 | 400 | switch.red[checked] .wx-switch-input.wx-switch-input-checked, 401 | checkbox.red[checked] .wx-checkbox-input, 402 | radio.red[checked] .wx-radio-input { 403 | background-color: var(--red) !important; 404 | color: var(--white) !important; 405 | } 406 | 407 | switch.orange[checked] .wx-switch-input, 408 | checkbox.orange[checked] .wx-checkbox-input, 409 | radio.orange[checked] .wx-radio-input { 410 | background-color: var(--orange) !important; 411 | color: var(--white) !important; 412 | } 413 | 414 | switch.yellow[checked] .wx-switch-input, 415 | checkbox.yellow[checked] .wx-checkbox-input, 416 | radio.yellow[checked] .wx-radio-input { 417 | background-color: var(--yellow) !important; 418 | color: var(--black) !important; 419 | } 420 | 421 | switch.olive[checked] .wx-switch-input, 422 | checkbox.olive[checked] .wx-checkbox-input, 423 | radio.olive[checked] .wx-radio-input { 424 | background-color: var(--olive) !important; 425 | color: var(--white) !important; 426 | } 427 | 428 | switch.green[checked] .wx-switch-input, 429 | switch[checked] .wx-switch-input, 430 | checkbox.green[checked] .wx-checkbox-input, 431 | checkbox[checked] .wx-checkbox-input, 432 | radio.green[checked] .wx-radio-input, 433 | radio[checked] .wx-radio-input { 434 | background-color: var(--green) !important; 435 | color: var(--white) !important; 436 | } 437 | 438 | switch.cyan[checked] .wx-switch-input, 439 | checkbox.cyan[checked] .wx-checkbox-input, 440 | radio.cyan[checked] .wx-radio-input { 441 | background-color: var(--cyan) !important; 442 | color: var(--white) !important; 443 | } 444 | 445 | switch.blue[checked] .wx-switch-input, 446 | checkbox.blue[checked] .wx-checkbox-input, 447 | radio.blue[checked] .wx-radio-input { 448 | background-color: var(--blue) !important; 449 | color: var(--white) !important; 450 | } 451 | 452 | switch.purple[checked] .wx-switch-input, 453 | checkbox.purple[checked] .wx-checkbox-input, 454 | radio.purple[checked] .wx-radio-input { 455 | background-color: var(--purple) !important; 456 | color: var(--white) !important; 457 | } 458 | 459 | switch.mauve[checked] .wx-switch-input, 460 | checkbox.mauve[checked] .wx-checkbox-input, 461 | radio.mauve[checked] .wx-radio-input { 462 | background-color: var(--mauve) !important; 463 | color: var(--white) !important; 464 | } 465 | 466 | switch.pink[checked] .wx-switch-input, 467 | checkbox.pink[checked] .wx-checkbox-input, 468 | radio.pink[checked] .wx-radio-input { 469 | background-color: var(--pink) !important; 470 | color: var(--white) !important; 471 | } 472 | 473 | switch.brown[checked] .wx-switch-input, 474 | checkbox.brown[checked] .wx-checkbox-input, 475 | radio.brown[checked] .wx-radio-input { 476 | background-color: var(--brown) !important; 477 | color: var(--white) !important; 478 | } 479 | 480 | switch.grey[checked] .wx-switch-input, 481 | checkbox.grey[checked] .wx-checkbox-input, 482 | radio.grey[checked] .wx-radio-input { 483 | background-color: var(--grey) !important; 484 | color: var(--white) !important; 485 | } 486 | 487 | switch.gray[checked] .wx-switch-input, 488 | checkbox.gray[checked] .wx-checkbox-input, 489 | radio.gray[checked] .wx-radio-input { 490 | background-color: #f0f0f0 !important; 491 | color: var(--black) !important; 492 | } 493 | 494 | switch.black[checked] .wx-switch-input, 495 | checkbox.black[checked] .wx-checkbox-input, 496 | radio.black[checked] .wx-radio-input { 497 | background-color: var(--black) !important; 498 | color: var(--white) !important; 499 | } 500 | 501 | switch.white[checked] .wx-switch-input, 502 | checkbox.white[checked] .wx-checkbox-input, 503 | radio.white[checked] .wx-radio-input { 504 | background-color: var(--white) !important; 505 | color: var(--black) !important; 506 | } 507 | 508 | /* ================== 509 | 边框 510 | ==================== */ 511 | 512 | /* -- 实线 -- */ 513 | 514 | .solid, 515 | .solid-top, 516 | .solid-right, 517 | .solid-bottom, 518 | .solid-left, 519 | .solids, 520 | .solids-top, 521 | .solids-right, 522 | .solids-bottom, 523 | .solids-left, 524 | .dashed, 525 | .dashed-top, 526 | .dashed-right, 527 | .dashed-bottom, 528 | .dashed-left { 529 | position: relative; 530 | } 531 | 532 | .solid::after, 533 | .solid-top::after, 534 | .solid-right::after, 535 | .solid-bottom::after, 536 | .solid-left::after, 537 | .solids::after, 538 | .solids-top::after, 539 | .solids-right::after, 540 | .solids-bottom::after, 541 | .solids-left::after, 542 | .dashed::after, 543 | .dashed-top::after, 544 | .dashed-right::after, 545 | .dashed-bottom::after, 546 | .dashed-left::after { 547 | content: " "; 548 | width: 200%; 549 | height: 200%; 550 | position: absolute; 551 | top: 0; 552 | left: 0; 553 | border-radius: inherit; 554 | transform: scale(0.5); 555 | transform-origin: 0 0; 556 | pointer-events: none; 557 | box-sizing: border-box; 558 | } 559 | 560 | .solid::after { 561 | border: 1rpx solid rgba(0, 0, 0, 0.1); 562 | } 563 | 564 | .solid-top::after { 565 | border-top: 1rpx solid rgba(0, 0, 0, 0.1); 566 | } 567 | 568 | .solid-right::after { 569 | border-right: 1rpx solid rgba(0, 0, 0, 0.1); 570 | } 571 | 572 | .solid-bottom::after { 573 | border-bottom: 1rpx solid rgba(0, 0, 0, 0.1); 574 | } 575 | 576 | .solid-left::after { 577 | border-left: 1rpx solid rgba(0, 0, 0, 0.1); 578 | } 579 | 580 | .solids::after { 581 | border: 8rpx solid #eee; 582 | } 583 | 584 | .solids-top::after { 585 | border-top: 8rpx solid #eee; 586 | } 587 | 588 | .solids-right::after { 589 | border-right: 8rpx solid #eee; 590 | } 591 | 592 | .solids-bottom::after { 593 | border-bottom: 8rpx solid #eee; 594 | } 595 | 596 | .solids-left::after { 597 | border-left: 8rpx solid #eee; 598 | } 599 | 600 | /* -- 虚线 -- */ 601 | 602 | .dashed::after { 603 | border: 1rpx dashed #ddd; 604 | } 605 | 606 | .dashed-top::after { 607 | border-top: 1rpx dashed #ddd; 608 | } 609 | 610 | .dashed-right::after { 611 | border-right: 1rpx dashed #ddd; 612 | } 613 | 614 | .dashed-bottom::after { 615 | border-bottom: 1rpx dashed #ddd; 616 | } 617 | 618 | .dashed-left::after { 619 | border-left: 1rpx dashed #ddd; 620 | } 621 | 622 | /* -- 阴影 -- */ 623 | 624 | .shadow[class*='white'] { 625 | --ShadowSize: 0 1rpx 6rpx; 626 | } 627 | 628 | .shadow-lg { 629 | --ShadowSize: 0rpx 40rpx 100rpx 0rpx; 630 | } 631 | 632 | .shadow-warp { 633 | position: relative; 634 | box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.1); 635 | } 636 | 637 | .shadow-warp:before, 638 | .shadow-warp:after { 639 | position: absolute; 640 | content: ""; 641 | top: 20rpx; 642 | bottom: 30rpx; 643 | left: 20rpx; 644 | width: 50%; 645 | box-shadow: 0 30rpx 20rpx rgba(0, 0, 0, 0.2); 646 | transform: rotate(-3deg); 647 | z-index: -1; 648 | } 649 | 650 | .shadow-warp:after { 651 | right: 20rpx; 652 | left: auto; 653 | transform: rotate(3deg); 654 | } 655 | 656 | .shadow-blur { 657 | position: relative; 658 | } 659 | 660 | .shadow-blur::before { 661 | content: ""; 662 | display: block; 663 | background: inherit; 664 | filter: blur(10rpx); 665 | position: absolute; 666 | width: 100%; 667 | height: 100%; 668 | top: 10rpx; 669 | left: 10rpx; 670 | z-index: -1; 671 | opacity: 0.4; 672 | transform-origin: 0 0; 673 | border-radius: inherit; 674 | transform: scale(1, 1); 675 | } 676 | 677 | /* ================== 678 | 按钮 679 | ==================== */ 680 | 681 | .cu-btn { 682 | position: relative; 683 | border: 0rpx; 684 | display: inline-flex; 685 | align-items: center; 686 | justify-content: center; 687 | box-sizing: border-box; 688 | padding: 0 30rpx; 689 | font-size: 28rpx; 690 | height: 64rpx; 691 | line-height: 1; 692 | text-align: center; 693 | text-decoration: none; 694 | overflow: visible; 695 | margin-left: initial; 696 | transform: translate(0rpx, 0rpx); 697 | margin-right: initial; 698 | } 699 | 700 | .cu-btn::after { 701 | display: none; 702 | } 703 | 704 | .cu-btn:not([class*="bg-"]) { 705 | background-color: #f0f0f0; 706 | } 707 | 708 | .cu-btn[class*="line"] { 709 | background-color: transparent; 710 | } 711 | 712 | .cu-btn[class*="line"]::after { 713 | content: " "; 714 | display: block; 715 | width: 200%; 716 | height: 200%; 717 | position: absolute; 718 | top: 0; 719 | left: 0; 720 | border: 1rpx solid currentColor; 721 | transform: scale(0.5); 722 | transform-origin: 0 0; 723 | box-sizing: border-box; 724 | border-radius: 12rpx; 725 | z-index: 1; 726 | pointer-events: none; 727 | } 728 | 729 | .cu-btn.round[class*="line"]::after { 730 | border-radius: 1000rpx; 731 | } 732 | 733 | .cu-btn[class*="lines"]::after { 734 | border: 6rpx solid currentColor; 735 | } 736 | 737 | .cu-btn[class*="bg-"]::after { 738 | display: none; 739 | } 740 | 741 | .cu-btn.sm { 742 | padding: 0 20rpx; 743 | font-size: 20rpx; 744 | height: 48rpx; 745 | } 746 | 747 | .cu-btn.lg { 748 | padding: 0 40rpx; 749 | font-size: 32rpx; 750 | height: 80rpx; 751 | } 752 | 753 | .cu-btn.icon.sm { 754 | width: 48rpx; 755 | height: 48rpx; 756 | } 757 | 758 | .cu-btn.icon { 759 | width: 64rpx; 760 | height: 64rpx; 761 | border-radius: 500rpx; 762 | padding: 0; 763 | } 764 | 765 | button.icon.lg { 766 | width: 80rpx; 767 | height: 80rpx; 768 | } 769 | 770 | .cu-btn.shadow-blur::before { 771 | top: 4rpx; 772 | left: 4rpx; 773 | filter: blur(6rpx); 774 | opacity: 0.6; 775 | } 776 | 777 | .cu-btn.button-hover { 778 | transform: translate(1rpx, 1rpx); 779 | } 780 | 781 | .block { 782 | display: block; 783 | } 784 | 785 | .cu-btn.block { 786 | display: flex; 787 | } 788 | 789 | .cu-btn[disabled] { 790 | opacity: 0.6; 791 | color: var(--white); 792 | } 793 | 794 | /* ================== 795 | 徽章 796 | ==================== */ 797 | 798 | .cu-tag { 799 | font-size: 24rpx; 800 | vertical-align: middle; 801 | position: relative; 802 | display: inline-flex; 803 | align-items: center; 804 | justify-content: center; 805 | box-sizing: border-box; 806 | padding: 0rpx 16rpx; 807 | height: 48rpx; 808 | font-family: Helvetica Neue, Helvetica, sans-serif; 809 | white-space: nowrap; 810 | } 811 | 812 | .cu-tag:not([class*="bg"]):not([class*="line"]) { 813 | background-color: var(--ghostWhite); 814 | } 815 | 816 | .cu-tag[class*="line-"]::after { 817 | content: " "; 818 | width: 200%; 819 | height: 200%; 820 | position: absolute; 821 | top: 0; 822 | left: 0; 823 | border: 1rpx solid currentColor; 824 | transform: scale(0.5); 825 | transform-origin: 0 0; 826 | box-sizing: border-box; 827 | border-radius: inherit; 828 | z-index: 1; 829 | pointer-events: none; 830 | } 831 | 832 | .cu-tag.radius[class*="line"]::after { 833 | border-radius: 12rpx; 834 | } 835 | 836 | .cu-tag.round[class*="line"]::after { 837 | border-radius: 1000rpx; 838 | } 839 | 840 | .cu-tag[class*="line-"]::after { 841 | border-radius: 0; 842 | } 843 | 844 | .cu-tag+.cu-tag { 845 | margin-left: 10rpx; 846 | } 847 | 848 | .cu-tag.sm { 849 | font-size: 20rpx; 850 | padding: 0rpx 12rpx; 851 | height: 32rpx; 852 | } 853 | 854 | .cu-capsule { 855 | display: inline-flex; 856 | vertical-align: middle; 857 | } 858 | 859 | .cu-capsule+.cu-capsule { 860 | margin-left: 10rpx; 861 | } 862 | 863 | .cu-capsule .cu-tag { 864 | margin: 0; 865 | } 866 | 867 | .cu-capsule .cu-tag[class*="line-"]:last-child::after { 868 | border-left: 0rpx solid transparent; 869 | } 870 | 871 | .cu-capsule .cu-tag[class*="line-"]:first-child::after { 872 | border-right: 0rpx solid transparent; 873 | } 874 | 875 | .cu-capsule.radius .cu-tag:first-child { 876 | border-top-left-radius: 6rpx; 877 | border-bottom-left-radius: 6rpx; 878 | } 879 | 880 | .cu-capsule.radius .cu-tag:last-child::after, 881 | .cu-capsule.radius .cu-tag[class*="line-"] { 882 | border-top-right-radius: 12rpx; 883 | border-bottom-right-radius: 12rpx; 884 | } 885 | 886 | .cu-capsule.round .cu-tag:first-child { 887 | border-top-left-radius: 200rpx; 888 | border-bottom-left-radius: 200rpx; 889 | text-indent: 4rpx; 890 | } 891 | 892 | .cu-capsule.round .cu-tag:last-child::after, 893 | .cu-capsule.round .cu-tag:last-child { 894 | border-top-right-radius: 200rpx; 895 | border-bottom-right-radius: 200rpx; 896 | text-indent: -4rpx; 897 | } 898 | 899 | .cu-tag.badge { 900 | border-radius: 200rpx; 901 | position: absolute; 902 | top: -10rpx; 903 | right: -10rpx; 904 | font-size: 20rpx; 905 | padding: 0rpx 10rpx; 906 | height: 28rpx; 907 | color: var(--white); 908 | } 909 | 910 | .cu-tag.badge:not([class*="bg-"]) { 911 | background-color: #dd514c; 912 | } 913 | 914 | .cu-tag:empty:not([class*="cuIcon-"]) { 915 | padding: 0rpx; 916 | width: 16rpx; 917 | height: 16rpx; 918 | top: -4rpx; 919 | right: -4rpx; 920 | } 921 | 922 | .cu-tag[class*="cuIcon-"] { 923 | width: 32rpx; 924 | height: 32rpx; 925 | top: -4rpx; 926 | right: -4rpx; 927 | } 928 | 929 | /* ================== 930 | 头像 931 | ==================== */ 932 | 933 | .cu-avatar { 934 | font-variant: small-caps; 935 | margin: 0; 936 | padding: 0; 937 | display: inline-flex; 938 | text-align: center; 939 | justify-content: center; 940 | align-items: center; 941 | background-color: #ccc; 942 | color: var(--white); 943 | white-space: nowrap; 944 | position: relative; 945 | width: 64rpx; 946 | height: 64rpx; 947 | background-size: cover; 948 | background-position: center; 949 | vertical-align: middle; 950 | font-size: 1.5em; 951 | } 952 | 953 | .cu-avatar.sm { 954 | width: 48rpx; 955 | height: 48rpx; 956 | font-size: 1em; 957 | } 958 | 959 | .cu-avatar.lg { 960 | width: 96rpx; 961 | height: 96rpx; 962 | font-size: 2em; 963 | } 964 | 965 | .cu-avatar.xl { 966 | width: 128rpx; 967 | height: 128rpx; 968 | font-size: 2.5em; 969 | } 970 | 971 | .cu-avatar .avatar-text { 972 | font-size: 0.4em; 973 | } 974 | 975 | .cu-avatar-group { 976 | direction: rtl; 977 | unicode-bidi: bidi-override; 978 | padding: 0 10rpx 0 40rpx; 979 | display: inline-block; 980 | } 981 | 982 | .cu-avatar-group .cu-avatar { 983 | margin-left: -30rpx; 984 | border: 4rpx solid var(--ghostWhite); 985 | vertical-align: middle; 986 | } 987 | 988 | .cu-avatar-group .cu-avatar.sm { 989 | margin-left: -20rpx; 990 | border: 1rpx solid var(--ghostWhite); 991 | } 992 | 993 | /* ================== 994 | 进度条 995 | ==================== */ 996 | 997 | .cu-progress { 998 | overflow: hidden; 999 | height: 28rpx; 1000 | background-color: #ebeef5; 1001 | display: inline-flex; 1002 | align-items: center; 1003 | width: 100%; 1004 | } 1005 | 1006 | .cu-progress+view, 1007 | .cu-progress+text { 1008 | line-height: 1; 1009 | } 1010 | 1011 | .cu-progress.xs { 1012 | height: 10rpx; 1013 | } 1014 | 1015 | .cu-progress.sm { 1016 | height: 20rpx; 1017 | } 1018 | 1019 | .cu-progress view { 1020 | width: 0; 1021 | height: 100%; 1022 | align-items: center; 1023 | display: flex; 1024 | justify-items: flex-end; 1025 | justify-content: space-around; 1026 | font-size: 20rpx; 1027 | color: var(--white); 1028 | transition: width 0.6s ease; 1029 | } 1030 | 1031 | .cu-progress text { 1032 | align-items: center; 1033 | display: flex; 1034 | font-size: 20rpx; 1035 | color: var(--black); 1036 | text-indent: 10rpx; 1037 | } 1038 | 1039 | .cu-progress.text-progress { 1040 | padding-right: 60rpx; 1041 | } 1042 | 1043 | .cu-progress.striped view { 1044 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 1045 | background-size: 72rpx 72rpx; 1046 | } 1047 | 1048 | .cu-progress.active view { 1049 | animation: progress-stripes 2s linear infinite; 1050 | } 1051 | 1052 | @keyframes progress-stripes { 1053 | from { 1054 | background-position: 72rpx 0; 1055 | } 1056 | 1057 | to { 1058 | background-position: 0 0; 1059 | } 1060 | } 1061 | 1062 | /* ================== 1063 | 加载 1064 | ==================== */ 1065 | 1066 | .cu-load { 1067 | display: block; 1068 | line-height: 3em; 1069 | text-align: center; 1070 | } 1071 | 1072 | .cu-load::before { 1073 | font-family: "cuIcon"; 1074 | display: inline-block; 1075 | margin-right: 6rpx; 1076 | } 1077 | 1078 | .cu-load.loading::before { 1079 | content: "\e67a"; 1080 | animation: cuIcon-spin 2s infinite linear; 1081 | } 1082 | 1083 | .cu-load.loading::after { 1084 | content: "加载中..."; 1085 | } 1086 | 1087 | .cu-load.over::before { 1088 | content: "\e64a"; 1089 | } 1090 | 1091 | .cu-load.over::after { 1092 | content: "没有更多了"; 1093 | } 1094 | 1095 | .cu-load.erro::before { 1096 | content: "\e658"; 1097 | } 1098 | 1099 | .cu-load.erro::after { 1100 | content: "加载失败"; 1101 | } 1102 | 1103 | .cu-load.load-icon::before { 1104 | font-size: 32rpx; 1105 | } 1106 | 1107 | .cu-load.load-icon::after { 1108 | display: none; 1109 | } 1110 | 1111 | .cu-load.load-icon.over { 1112 | display: none; 1113 | } 1114 | 1115 | .cu-load.load-modal { 1116 | position: fixed; 1117 | top: 0; 1118 | right: 0; 1119 | bottom: 140rpx; 1120 | left: 0; 1121 | margin: auto; 1122 | width: 260rpx; 1123 | height: 260rpx; 1124 | background-color: var(--white); 1125 | border-radius: 10rpx; 1126 | box-shadow: 0 0 0rpx 2000rpx rgba(0, 0, 0, 0.5); 1127 | display: flex; 1128 | align-items: center; 1129 | flex-direction: column; 1130 | justify-content: center; 1131 | font-size: 28rpx; 1132 | z-index: 9999; 1133 | line-height: 2.4em; 1134 | } 1135 | 1136 | .cu-load.load-modal [class*="cuIcon-"] { 1137 | font-size: 60rpx; 1138 | } 1139 | 1140 | .cu-load.load-modal image { 1141 | width: 70rpx; 1142 | height: 70rpx; 1143 | } 1144 | 1145 | .cu-load.load-modal::after { 1146 | content: ""; 1147 | position: absolute; 1148 | background-color: var(--white); 1149 | border-radius: 50%; 1150 | width: 200rpx; 1151 | height: 200rpx; 1152 | font-size: 10px; 1153 | border-top: 6rpx solid rgba(0, 0, 0, 0.05); 1154 | border-right: 6rpx solid rgba(0, 0, 0, 0.05); 1155 | border-bottom: 6rpx solid rgba(0, 0, 0, 0.05); 1156 | border-left: 6rpx solid var(--orange); 1157 | animation: cuIcon-spin 1s infinite linear; 1158 | z-index: -1; 1159 | } 1160 | 1161 | .load-progress { 1162 | pointer-events: none; 1163 | top: 0; 1164 | position: fixed; 1165 | width: 100%; 1166 | left: 0; 1167 | z-index: 2000; 1168 | } 1169 | 1170 | .load-progress.hide { 1171 | display: none; 1172 | } 1173 | 1174 | .load-progress .load-progress-bar { 1175 | position: relative; 1176 | width: 100%; 1177 | height: 4rpx; 1178 | overflow: hidden; 1179 | transition: all 200ms ease 0s; 1180 | } 1181 | 1182 | .load-progress .load-progress-spinner { 1183 | position: absolute; 1184 | top: 10rpx; 1185 | right: 10rpx; 1186 | z-index: 2000; 1187 | display: block; 1188 | } 1189 | 1190 | .load-progress .load-progress-spinner::after { 1191 | content: ""; 1192 | display: block; 1193 | width: 24rpx; 1194 | height: 24rpx; 1195 | -webkit-box-sizing: border-box; 1196 | box-sizing: border-box; 1197 | border: solid 4rpx transparent; 1198 | border-top-color: inherit; 1199 | border-left-color: inherit; 1200 | border-radius: 50%; 1201 | -webkit-animation: load-progress-spinner 0.4s linear infinite; 1202 | animation: load-progress-spinner 0.4s linear infinite; 1203 | } 1204 | 1205 | @-webkit-keyframes load-progress-spinner { 1206 | 0% { 1207 | -webkit-transform: rotate(0); 1208 | transform: rotate(0); 1209 | } 1210 | 1211 | 100% { 1212 | -webkit-transform: rotate(360deg); 1213 | transform: rotate(360deg); 1214 | } 1215 | } 1216 | 1217 | @keyframes load-progress-spinner { 1218 | 0% { 1219 | -webkit-transform: rotate(0); 1220 | transform: rotate(0); 1221 | } 1222 | 1223 | 100% { 1224 | -webkit-transform: rotate(360deg); 1225 | transform: rotate(360deg); 1226 | } 1227 | } 1228 | 1229 | /* ================== 1230 | 列表 1231 | ==================== */ 1232 | .grayscale { 1233 | filter: grayscale(1); 1234 | } 1235 | 1236 | .cu-list+.cu-list { 1237 | margin-top: 30rpx 1238 | } 1239 | 1240 | .cu-list>.cu-item { 1241 | transition: all .6s ease-in-out 0s; 1242 | transform: translateX(0rpx) 1243 | } 1244 | 1245 | .cu-list>.cu-item.move-cur { 1246 | transform: translateX(-260rpx) 1247 | } 1248 | 1249 | .cu-list>.cu-item .move { 1250 | position: absolute; 1251 | right: 0; 1252 | display: flex; 1253 | width: 260rpx; 1254 | height: 100%; 1255 | transform: translateX(100%) 1256 | } 1257 | 1258 | .cu-list>.cu-item .move view { 1259 | display: flex; 1260 | flex: 1; 1261 | justify-content: center; 1262 | align-items: center 1263 | } 1264 | 1265 | .cu-list.menu-avatar { 1266 | overflow: hidden; 1267 | } 1268 | 1269 | .cu-list.menu-avatar>.cu-item { 1270 | position: relative; 1271 | display: flex; 1272 | padding-right: 10rpx; 1273 | height: 140rpx; 1274 | background-color: var(--white); 1275 | justify-content: flex-end; 1276 | align-items: center 1277 | } 1278 | 1279 | .cu-list.menu-avatar>.cu-item>.cu-avatar { 1280 | position: absolute; 1281 | left: 30rpx 1282 | } 1283 | 1284 | .cu-list.menu-avatar>.cu-item .flex .text-cut { 1285 | max-width: 510rpx 1286 | } 1287 | 1288 | .cu-list.menu-avatar>.cu-item .content { 1289 | position: absolute; 1290 | left: 146rpx; 1291 | width: calc(100% - 96rpx - 60rpx - 120rpx - 20rpx); 1292 | line-height: 1.6em; 1293 | } 1294 | 1295 | .cu-list.menu-avatar>.cu-item .content.flex-sub { 1296 | width: calc(100% - 96rpx - 60rpx - 20rpx); 1297 | } 1298 | 1299 | .cu-list.menu-avatar>.cu-item .content>view:first-child { 1300 | font-size: 30rpx; 1301 | display: flex; 1302 | align-items: center 1303 | } 1304 | 1305 | .cu-list.menu-avatar>.cu-item .content .cu-tag.sm { 1306 | display: inline-block; 1307 | margin-left: 10rpx; 1308 | height: 28rpx; 1309 | font-size: 16rpx; 1310 | line-height: 32rpx 1311 | } 1312 | 1313 | .cu-list.menu-avatar>.cu-item .action { 1314 | width: 100rpx; 1315 | text-align: center 1316 | } 1317 | 1318 | .cu-list.menu-avatar>.cu-item .action view+view { 1319 | margin-top: 10rpx 1320 | } 1321 | 1322 | .cu-list.menu-avatar.comment>.cu-item .content { 1323 | position: relative; 1324 | left: 0; 1325 | width: auto; 1326 | flex: 1; 1327 | } 1328 | 1329 | .cu-list.menu-avatar.comment>.cu-item { 1330 | padding: 30rpx 30rpx 30rpx 120rpx; 1331 | height: auto 1332 | } 1333 | 1334 | .cu-list.menu-avatar.comment .cu-avatar { 1335 | align-self: flex-start 1336 | } 1337 | 1338 | .cu-list.menu>.cu-item { 1339 | position: relative; 1340 | display: flex; 1341 | padding: 0 30rpx; 1342 | min-height: 100rpx; 1343 | background-color: var(--white); 1344 | justify-content: space-between; 1345 | align-items: center 1346 | } 1347 | 1348 | .cu-list.menu>.cu-item:last-child:after { 1349 | border: none 1350 | } 1351 | 1352 | .cu-list.menu>.cu-item:after { 1353 | position: absolute; 1354 | top: 0; 1355 | left: 0; 1356 | box-sizing: border-box; 1357 | width: 200%; 1358 | height: 200%; 1359 | border-bottom: 1rpx solid #ddd; 1360 | border-radius: inherit; 1361 | content: " "; 1362 | transform: scale(.5); 1363 | transform-origin: 0 0; 1364 | pointer-events: none 1365 | } 1366 | 1367 | .cu-list.menu>.cu-item.grayscale { 1368 | background-color: #f5f5f5 1369 | } 1370 | 1371 | .cu-list.menu>.cu-item.cur { 1372 | background-color: #fcf7e9 1373 | } 1374 | 1375 | .cu-list.menu>.cu-item.arrow { 1376 | padding-right: 90rpx 1377 | } 1378 | 1379 | .cu-list.menu>.cu-item.arrow:before { 1380 | position: absolute; 1381 | top: 0; 1382 | right: 30rpx; 1383 | bottom: 0; 1384 | display: block; 1385 | margin: auto; 1386 | width: 30rpx; 1387 | height: 30rpx; 1388 | color: var(--grey); 1389 | content: "\e6a3"; 1390 | text-align: center; 1391 | font-size: 34rpx; 1392 | font-family: "cuIcon"; 1393 | line-height: 30rpx 1394 | } 1395 | 1396 | .cu-list.menu>.cu-item button.content { 1397 | padding: 0; 1398 | background-color: transparent; 1399 | justify-content: flex-start 1400 | } 1401 | 1402 | .cu-list.menu>.cu-item button.content:after { 1403 | display: none 1404 | } 1405 | 1406 | .cu-list.menu>.cu-item .cu-avatar-group .cu-avatar { 1407 | border-color: var(--white) 1408 | } 1409 | 1410 | .cu-list.menu>.cu-item .content>view:first-child { 1411 | display: flex; 1412 | align-items: center 1413 | } 1414 | 1415 | .cu-list.menu>.cu-item .content>text[class*=cuIcon] { 1416 | display: inline-block; 1417 | margin-right: 10rpx; 1418 | width: 1.6em; 1419 | text-align: center 1420 | } 1421 | 1422 | .cu-list.menu>.cu-item .content>image { 1423 | display: inline-block; 1424 | margin-right: 10rpx; 1425 | width: 1.6em; 1426 | height: 1.6em; 1427 | vertical-align: middle 1428 | } 1429 | 1430 | .cu-list.menu>.cu-item .content { 1431 | font-size: 30rpx; 1432 | line-height: 1.6em; 1433 | flex: 1 1434 | } 1435 | 1436 | .cu-list.menu>.cu-item .content .cu-tag.sm { 1437 | display: inline-block; 1438 | margin-left: 10rpx; 1439 | height: 28rpx; 1440 | font-size: 16rpx; 1441 | line-height: 32rpx 1442 | } 1443 | 1444 | .cu-list.menu>.cu-item .action .cu-tag:empty { 1445 | right: 10rpx 1446 | } 1447 | 1448 | .cu-list.menu { 1449 | display: block; 1450 | overflow: hidden 1451 | } 1452 | 1453 | .cu-list.menu.sm-border>.cu-item:after { 1454 | left: 30rpx; 1455 | width: calc(200% - 120rpx) 1456 | } 1457 | 1458 | .cu-list.grid>.cu-item { 1459 | position: relative; 1460 | display: flex; 1461 | padding: 20rpx 0 30rpx; 1462 | transition-duration: 0s; 1463 | flex-direction: column 1464 | } 1465 | 1466 | .cu-list.grid>.cu-item:after { 1467 | position: absolute; 1468 | top: 0; 1469 | left: 0; 1470 | box-sizing: border-box; 1471 | width: 200%; 1472 | height: 200%; 1473 | border-right: 1px solid rgba(0, 0, 0, .1); 1474 | border-bottom: 1px solid rgba(0, 0, 0, .1); 1475 | border-radius: inherit; 1476 | content: " "; 1477 | transform: scale(.5); 1478 | transform-origin: 0 0; 1479 | pointer-events: none 1480 | } 1481 | 1482 | .cu-list.grid>.cu-item text { 1483 | display: block; 1484 | margin-top: 10rpx; 1485 | color: #888; 1486 | font-size: 26rpx; 1487 | line-height: 40rpx 1488 | } 1489 | 1490 | .cu-list.grid>.cu-item [class*=cuIcon] { 1491 | position: relative; 1492 | display: block; 1493 | margin-top: 20rpx; 1494 | width: 100%; 1495 | font-size: 48rpx 1496 | } 1497 | 1498 | .cu-list.grid>.cu-item .cu-tag { 1499 | right: auto; 1500 | left: 50%; 1501 | margin-left: 20rpx 1502 | } 1503 | 1504 | .cu-list.grid { 1505 | background-color: var(--white); 1506 | text-align: center 1507 | } 1508 | 1509 | .cu-list.grid.no-border>.cu-item { 1510 | padding-top: 10rpx; 1511 | padding-bottom: 20rpx 1512 | } 1513 | 1514 | .cu-list.grid.no-border>.cu-item:after { 1515 | border: none 1516 | } 1517 | 1518 | .cu-list.grid.no-border { 1519 | padding: 20rpx 10rpx 1520 | } 1521 | 1522 | .cu-list.grid.col-3>.cu-item:nth-child(3n):after, 1523 | .cu-list.grid.col-4>.cu-item:nth-child(4n):after, 1524 | .cu-list.grid.col-5>.cu-item:nth-child(5n):after { 1525 | border-right-width: 0 1526 | } 1527 | 1528 | .cu-list.card-menu { 1529 | overflow: hidden; 1530 | margin-right: 30rpx; 1531 | margin-left: 30rpx; 1532 | border-radius: 20rpx 1533 | } 1534 | 1535 | 1536 | /* ================== 1537 | 操作条 1538 | ==================== */ 1539 | 1540 | .cu-bar { 1541 | display: flex; 1542 | position: relative; 1543 | align-items: center; 1544 | min-height: 100rpx; 1545 | justify-content: space-between; 1546 | } 1547 | 1548 | .cu-bar .action { 1549 | display: flex; 1550 | align-items: center; 1551 | height: 100%; 1552 | justify-content: center; 1553 | max-width: 100%; 1554 | } 1555 | 1556 | .cu-bar .action.border-title { 1557 | position: relative; 1558 | top: -10rpx; 1559 | } 1560 | 1561 | .cu-bar .action.border-title text[class*="bg-"]:last-child { 1562 | position: absolute; 1563 | bottom: -0.5rem; 1564 | min-width: 2rem; 1565 | height: 6rpx; 1566 | left: 0; 1567 | } 1568 | 1569 | .cu-bar .action.sub-title { 1570 | position: relative; 1571 | top: -0.2rem; 1572 | } 1573 | 1574 | .cu-bar .action.sub-title text { 1575 | position: relative; 1576 | z-index: 1; 1577 | } 1578 | 1579 | .cu-bar .action.sub-title text[class*="bg-"]:last-child { 1580 | position: absolute; 1581 | display: inline-block; 1582 | bottom: -0.2rem; 1583 | border-radius: 6rpx; 1584 | width: 100%; 1585 | height: 0.6rem; 1586 | left: 0.6rem; 1587 | opacity: 0.3; 1588 | z-index: 0; 1589 | } 1590 | 1591 | .cu-bar .action.sub-title text[class*="text-"]:last-child { 1592 | position: absolute; 1593 | display: inline-block; 1594 | bottom: -0.7rem; 1595 | left: 0.5rem; 1596 | opacity: 0.2; 1597 | z-index: 0; 1598 | text-align: right; 1599 | font-weight: 900; 1600 | font-size: 36rpx; 1601 | } 1602 | 1603 | .cu-bar.justify-center .action.border-title text:last-child, 1604 | .cu-bar.justify-center .action.sub-title text:last-child { 1605 | left: 0; 1606 | right: 0; 1607 | margin: auto; 1608 | text-align: center; 1609 | } 1610 | 1611 | .cu-bar .action:first-child { 1612 | margin-left: 30rpx; 1613 | font-size: 30rpx; 1614 | } 1615 | 1616 | .cu-bar .action text.text-cut { 1617 | text-align: left; 1618 | width: 100%; 1619 | } 1620 | 1621 | .cu-bar .cu-avatar:first-child { 1622 | margin-left: 20rpx; 1623 | } 1624 | 1625 | .cu-bar .action:first-child>text[class*="cuIcon-"] { 1626 | margin-left: -0.3em; 1627 | margin-right: 0.3em; 1628 | } 1629 | 1630 | .cu-bar .action:last-child { 1631 | margin-right: 30rpx; 1632 | } 1633 | 1634 | .cu-bar .action>text[class*="cuIcon-"], 1635 | .cu-bar .action>view[class*="cuIcon-"] { 1636 | font-size: 36rpx; 1637 | } 1638 | 1639 | .cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] { 1640 | margin-left: 0.5em; 1641 | } 1642 | 1643 | .cu-bar .content { 1644 | position: absolute; 1645 | text-align: center; 1646 | width: calc(100% - 340rpx); 1647 | left: 0; 1648 | right: 0; 1649 | bottom: 0; 1650 | top: 0; 1651 | margin: auto; 1652 | height: 60rpx; 1653 | font-size: 32rpx; 1654 | line-height: 60rpx; 1655 | cursor: none; 1656 | pointer-events: none; 1657 | text-overflow: ellipsis; 1658 | white-space: nowrap; 1659 | overflow: hidden; 1660 | } 1661 | 1662 | .cu-bar.ios .content { 1663 | bottom: 7px; 1664 | height: 30px; 1665 | font-size: 32rpx; 1666 | line-height: 30px; 1667 | } 1668 | 1669 | .cu-bar.btn-group { 1670 | justify-content: space-around; 1671 | } 1672 | 1673 | .cu-bar.btn-group button { 1674 | padding: 20rpx 32rpx; 1675 | } 1676 | 1677 | .cu-bar.btn-group button { 1678 | flex: 1; 1679 | margin: 0 20rpx; 1680 | max-width: 50%; 1681 | } 1682 | 1683 | .cu-bar .search-form { 1684 | background-color: #f5f5f5; 1685 | line-height: 64rpx; 1686 | height: 64rpx; 1687 | font-size: 24rpx; 1688 | color: var(--black); 1689 | flex: 1; 1690 | display: flex; 1691 | align-items: center; 1692 | margin: 0 30rpx; 1693 | } 1694 | 1695 | .cu-bar .search-form+.action { 1696 | margin-right: 30rpx; 1697 | } 1698 | 1699 | .cu-bar .search-form input { 1700 | flex: 1; 1701 | padding-right: 30rpx; 1702 | height: 64rpx; 1703 | line-height: 64rpx; 1704 | font-size: 26rpx; 1705 | background-color: transparent; 1706 | } 1707 | 1708 | .cu-bar .search-form [class*="cuIcon-"] { 1709 | margin: 0 0.5em 0 0.8em; 1710 | } 1711 | 1712 | .cu-bar .search-form [class*="cuIcon-"]::before { 1713 | top: 0rpx; 1714 | } 1715 | 1716 | .cu-bar.fixed, 1717 | .nav.fixed { 1718 | position: fixed; 1719 | width: 100%; 1720 | top: 0; 1721 | z-index: 1024; 1722 | box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1); 1723 | } 1724 | 1725 | .cu-bar.foot { 1726 | position: fixed; 1727 | width: 100%; 1728 | bottom: 0; 1729 | z-index: 1024; 1730 | box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1); 1731 | } 1732 | 1733 | .cu-bar.tabbar { 1734 | padding: 0; 1735 | height: calc(100rpx + env(safe-area-inset-bottom) / 2); 1736 | padding-bottom: calc(env(safe-area-inset-bottom) / 2); 1737 | } 1738 | 1739 | .cu-tabbar-height { 1740 | min-height: 100rpx; 1741 | height: calc(100rpx + env(safe-area-inset-bottom) / 2); 1742 | } 1743 | 1744 | .cu-bar.tabbar.shadow { 1745 | box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1); 1746 | } 1747 | 1748 | .cu-bar.tabbar .action { 1749 | font-size: 22rpx; 1750 | position: relative; 1751 | flex: 1; 1752 | text-align: center; 1753 | padding: 0; 1754 | display: block; 1755 | height: auto; 1756 | line-height: 1; 1757 | margin: 0; 1758 | overflow: initial; 1759 | } 1760 | 1761 | .cu-bar.tabbar.shop .action { 1762 | width: 140rpx; 1763 | flex: initial; 1764 | } 1765 | 1766 | .cu-bar.tabbar .action.add-action { 1767 | position: relative; 1768 | z-index: 2; 1769 | padding-top: 50rpx; 1770 | background-color: inherit; 1771 | } 1772 | 1773 | .cu-bar.tabbar .action.add-action [class*="cuIcon-"] { 1774 | position: absolute; 1775 | width: 70rpx; 1776 | z-index: 2; 1777 | height: 70rpx; 1778 | border-radius: 50%; 1779 | line-height: 70rpx; 1780 | font-size: 50rpx; 1781 | top: -35rpx; 1782 | left: 0; 1783 | right: 0; 1784 | margin: auto; 1785 | padding: 0; 1786 | } 1787 | 1788 | .cu-bar.tabbar .action.add-action::after { 1789 | content: ""; 1790 | position: absolute; 1791 | width: 100rpx; 1792 | height: 100rpx; 1793 | top: -50rpx; 1794 | left: 0; 1795 | right: 0; 1796 | margin: auto; 1797 | box-shadow: 0 -3rpx 8rpx rgba(0, 0, 0, 0.08); 1798 | border-radius: 50rpx; 1799 | background-color: inherit; 1800 | z-index: 0; 1801 | } 1802 | 1803 | .cu-bar.tabbar .action.add-action::before { 1804 | content: ""; 1805 | position: absolute; 1806 | width: 100rpx; 1807 | height: 30rpx; 1808 | bottom: 30rpx; 1809 | left: 0; 1810 | right: 0; 1811 | margin: auto; 1812 | background-color: inherit; 1813 | z-index: 1; 1814 | } 1815 | 1816 | .cu-bar.tabbar .btn-group { 1817 | flex: 1; 1818 | display: flex; 1819 | justify-content: space-around; 1820 | align-items: center; 1821 | padding: 0 10rpx; 1822 | } 1823 | 1824 | .cu-bar.tabbar button.action::after { 1825 | border: 0; 1826 | } 1827 | 1828 | .cu-bar.tabbar .action [class*="cuIcon-"] { 1829 | width: 100rpx; 1830 | position: relative; 1831 | display: block; 1832 | height: auto; 1833 | margin: 0 auto 10rpx; 1834 | text-align: center; 1835 | font-size: 40rpx; 1836 | } 1837 | 1838 | .cu-bar.tabbar .action .cuIcon-cu-image { 1839 | margin: 0 auto; 1840 | } 1841 | 1842 | .cu-bar.tabbar .action .cuIcon-cu-image image { 1843 | width: 50rpx; 1844 | height: 50rpx; 1845 | display: inline-block; 1846 | } 1847 | 1848 | .cu-bar.tabbar .submit { 1849 | align-items: center; 1850 | display: flex; 1851 | justify-content: center; 1852 | text-align: center; 1853 | position: relative; 1854 | flex: 2; 1855 | align-self: stretch; 1856 | } 1857 | 1858 | .cu-bar.tabbar .submit:last-child { 1859 | flex: 2.6; 1860 | } 1861 | 1862 | .cu-bar.tabbar .submit+.submit { 1863 | flex: 2; 1864 | } 1865 | 1866 | .cu-bar.tabbar.border .action::before { 1867 | content: " "; 1868 | width: 200%; 1869 | height: 200%; 1870 | position: absolute; 1871 | top: 0; 1872 | left: 0; 1873 | transform: scale(0.5); 1874 | transform-origin: 0 0; 1875 | border-right: 1rpx solid rgba(0, 0, 0, 0.1); 1876 | z-index: 3; 1877 | } 1878 | 1879 | .cu-bar.tabbar.border .action:last-child:before { 1880 | display: none; 1881 | } 1882 | 1883 | .cu-bar.input { 1884 | padding-right: 20rpx; 1885 | background-color: var(--white); 1886 | } 1887 | 1888 | .cu-bar.input input { 1889 | overflow: initial; 1890 | line-height: 64rpx; 1891 | height: 64rpx; 1892 | min-height: 64rpx; 1893 | flex: 1; 1894 | font-size: 30rpx; 1895 | margin: 0 20rpx; 1896 | } 1897 | 1898 | .cu-bar.input .action { 1899 | margin-left: 20rpx; 1900 | } 1901 | 1902 | .cu-bar.input .action [class*="cuIcon-"] { 1903 | font-size: 48rpx; 1904 | } 1905 | 1906 | .cu-bar.input input+.action { 1907 | margin-right: 20rpx; 1908 | margin-left: 0rpx; 1909 | } 1910 | 1911 | .cu-bar.input .action:first-child [class*="cuIcon-"] { 1912 | margin-left: 0rpx; 1913 | } 1914 | 1915 | .cu-custom { 1916 | display: block; 1917 | position: relative; 1918 | } 1919 | 1920 | .cu-custom .cu-bar .content { 1921 | width: calc(100% - 440rpx); 1922 | } 1923 | 1924 | 1925 | .cu-custom .cu-bar .content image { 1926 | height: 60rpx; 1927 | width: 240rpx; 1928 | } 1929 | 1930 | .cu-custom .cu-bar { 1931 | min-height: 0px; 1932 | padding-right: 220rpx; 1933 | box-shadow: 0rpx 0rpx 0rpx; 1934 | z-index: 9999; 1935 | } 1936 | 1937 | .cu-custom .cu-bar .border-custom { 1938 | position: relative; 1939 | background: rgba(0, 0, 0, 0.15); 1940 | border-radius: 1000rpx; 1941 | height: 30px; 1942 | } 1943 | 1944 | .cu-custom .cu-bar .border-custom::after { 1945 | content: " "; 1946 | width: 200%; 1947 | height: 200%; 1948 | position: absolute; 1949 | top: 0; 1950 | left: 0; 1951 | border-radius: inherit; 1952 | transform: scale(0.5); 1953 | transform-origin: 0 0; 1954 | pointer-events: none; 1955 | box-sizing: border-box; 1956 | border: 1rpx solid var(--white); 1957 | opacity: 0.5; 1958 | } 1959 | 1960 | .cu-custom .cu-bar .border-custom::before { 1961 | content: " "; 1962 | width: 1rpx; 1963 | height: 110%; 1964 | position: absolute; 1965 | top: 22.5%; 1966 | left: 0; 1967 | right: 0; 1968 | margin: auto; 1969 | transform: scale(0.5); 1970 | transform-origin: 0 0; 1971 | pointer-events: none; 1972 | box-sizing: border-box; 1973 | opacity: 0.6; 1974 | background-color: var(--white); 1975 | } 1976 | 1977 | .cu-custom .cu-bar .border-custom text { 1978 | display: block; 1979 | flex: 1; 1980 | margin: auto !important; 1981 | text-align: center; 1982 | font-size: 34rpx; 1983 | } 1984 | 1985 | /* ================== 1986 | 导航栏 1987 | ==================== */ 1988 | 1989 | .nav { 1990 | white-space: nowrap; 1991 | } 1992 | 1993 | ::-webkit-scrollbar { 1994 | display: none; 1995 | } 1996 | 1997 | .nav .cu-item { 1998 | height: 90rpx; 1999 | display: inline-block; 2000 | line-height: 90rpx; 2001 | margin: 0 10rpx; 2002 | padding: 0 20rpx; 2003 | } 2004 | 2005 | .nav .cu-item.cur { 2006 | border-bottom: 4rpx solid; 2007 | } 2008 | 2009 | /* ================== 2010 | 时间轴 2011 | ==================== */ 2012 | 2013 | .cu-timeline { 2014 | display: block; 2015 | background-color: var(--white); 2016 | } 2017 | 2018 | .cu-timeline .cu-time { 2019 | width: 120rpx; 2020 | text-align: center; 2021 | padding: 20rpx 0; 2022 | font-size: 26rpx; 2023 | color: #888; 2024 | display: block; 2025 | } 2026 | 2027 | .cu-timeline>.cu-item { 2028 | padding: 30rpx 30rpx 30rpx 120rpx; 2029 | position: relative; 2030 | display: block; 2031 | z-index: 0; 2032 | } 2033 | 2034 | .cu-timeline>.cu-item:not([class*="text-"]) { 2035 | color: #ccc; 2036 | } 2037 | 2038 | .cu-timeline>.cu-item::after { 2039 | content: ""; 2040 | display: block; 2041 | position: absolute; 2042 | width: 1rpx; 2043 | background-color: #ddd; 2044 | left: 60rpx; 2045 | height: 100%; 2046 | top: 0; 2047 | z-index: 8; 2048 | } 2049 | 2050 | .cu-timeline>.cu-item::before { 2051 | font-family: "cuIcon"; 2052 | display: block; 2053 | position: absolute; 2054 | top: 36rpx; 2055 | z-index: 9; 2056 | background-color: var(--white); 2057 | width: 50rpx; 2058 | height: 50rpx; 2059 | text-align: center; 2060 | border: none; 2061 | line-height: 50rpx; 2062 | left: 36rpx; 2063 | } 2064 | 2065 | .cu-timeline>.cu-item:not([class*="cuIcon-"])::before { 2066 | content: "\e763"; 2067 | } 2068 | 2069 | .cu-timeline>.cu-item[class*="cuIcon-"]::before { 2070 | background-color: var(--white); 2071 | width: 50rpx; 2072 | height: 50rpx; 2073 | text-align: center; 2074 | border: none; 2075 | line-height: 50rpx; 2076 | left: 36rpx; 2077 | } 2078 | 2079 | .cu-timeline>.cu-item>.content { 2080 | padding: 30rpx; 2081 | border-radius: 6rpx; 2082 | display: block; 2083 | line-height: 1.6; 2084 | } 2085 | 2086 | .cu-timeline>.cu-item>.content:not([class*="bg-"]) { 2087 | background-color: var(--ghostWhite); 2088 | color: var(--black); 2089 | } 2090 | 2091 | .cu-timeline>.cu-item>.content+.content { 2092 | margin-top: 20rpx; 2093 | } 2094 | 2095 | /* ================== 2096 | 聊天 2097 | ==================== */ 2098 | 2099 | .cu-chat { 2100 | display: flex; 2101 | flex-direction: column; 2102 | } 2103 | 2104 | .cu-chat .cu-item { 2105 | display: flex; 2106 | padding: 30rpx 30rpx 70rpx; 2107 | position: relative; 2108 | } 2109 | 2110 | .cu-chat .cu-item>.cu-avatar { 2111 | width: 80rpx; 2112 | height: 80rpx; 2113 | } 2114 | 2115 | .cu-chat .cu-item>.main { 2116 | max-width: calc(100% - 260rpx); 2117 | margin: 0 40rpx; 2118 | display: flex; 2119 | align-items: center; 2120 | } 2121 | 2122 | .cu-chat .cu-item>image { 2123 | height: 320rpx; 2124 | } 2125 | 2126 | .cu-chat .cu-item>.main .content { 2127 | padding: 20rpx; 2128 | border-radius: 6rpx; 2129 | display: inline-flex; 2130 | max-width: 100%; 2131 | align-items: center; 2132 | font-size: 30rpx; 2133 | position: relative; 2134 | min-height: 80rpx; 2135 | line-height: 40rpx; 2136 | text-align: left; 2137 | } 2138 | 2139 | .cu-chat .cu-item>.main .content:not([class*="bg-"]) { 2140 | background-color: var(--white); 2141 | color: var(--black); 2142 | } 2143 | 2144 | .cu-chat .cu-item .date { 2145 | position: absolute; 2146 | font-size: 24rpx; 2147 | color: var(--grey); 2148 | width: calc(100% - 320rpx); 2149 | bottom: 20rpx; 2150 | left: 160rpx; 2151 | } 2152 | 2153 | .cu-chat .cu-item .action { 2154 | padding: 0 30rpx; 2155 | display: flex; 2156 | align-items: center; 2157 | } 2158 | 2159 | .cu-chat .cu-item>.main .content::after { 2160 | content: ""; 2161 | top: 27rpx; 2162 | transform: rotate(45deg); 2163 | position: absolute; 2164 | z-index: 100; 2165 | display: inline-block; 2166 | overflow: hidden; 2167 | width: 24rpx; 2168 | height: 24rpx; 2169 | left: -12rpx; 2170 | right: initial; 2171 | background-color: inherit; 2172 | } 2173 | 2174 | .cu-chat .cu-item.self>.main .content::after { 2175 | left: auto; 2176 | right: -12rpx; 2177 | } 2178 | 2179 | .cu-chat .cu-item>.main .content::before { 2180 | content: ""; 2181 | top: 30rpx; 2182 | transform: rotate(45deg); 2183 | position: absolute; 2184 | z-index: -1; 2185 | display: inline-block; 2186 | overflow: hidden; 2187 | width: 24rpx; 2188 | height: 24rpx; 2189 | left: -12rpx; 2190 | right: initial; 2191 | background-color: inherit; 2192 | filter: blur(5rpx); 2193 | opacity: 0.3; 2194 | } 2195 | 2196 | .cu-chat .cu-item>.main .content:not([class*="bg-"])::before { 2197 | background-color: var(--black); 2198 | opacity: 0.1; 2199 | } 2200 | 2201 | .cu-chat .cu-item.self>.main .content::before { 2202 | left: auto; 2203 | right: -12rpx; 2204 | } 2205 | 2206 | .cu-chat .cu-item.self { 2207 | justify-content: flex-end; 2208 | text-align: right; 2209 | } 2210 | 2211 | .cu-chat .cu-info { 2212 | display: inline-block; 2213 | margin: 20rpx auto; 2214 | font-size: 24rpx; 2215 | padding: 8rpx 12rpx; 2216 | background-color: rgba(0, 0, 0, 0.2); 2217 | border-radius: 6rpx; 2218 | color: var(--white); 2219 | max-width: 400rpx; 2220 | line-height: 1.4; 2221 | } 2222 | 2223 | /* ================== 2224 | 卡片 2225 | ==================== */ 2226 | 2227 | .cu-card { 2228 | display: block; 2229 | overflow: hidden; 2230 | } 2231 | 2232 | .cu-card>.cu-item { 2233 | display: block; 2234 | background-color: var(--white); 2235 | overflow: hidden; 2236 | border-radius: 10rpx; 2237 | margin: 30rpx; 2238 | } 2239 | 2240 | .cu-card>.cu-item.shadow-blur { 2241 | overflow: initial; 2242 | } 2243 | 2244 | .cu-card.no-card>.cu-item { 2245 | margin: 0rpx; 2246 | border-radius: 0rpx; 2247 | } 2248 | 2249 | .cu-card .grid.grid-square { 2250 | margin-bottom: -20rpx; 2251 | } 2252 | 2253 | .cu-card.case .image { 2254 | position: relative; 2255 | } 2256 | 2257 | .cu-card.case .image image { 2258 | width: 100%; 2259 | } 2260 | 2261 | .cu-card.case .image .cu-tag { 2262 | position: absolute; 2263 | right: 0; 2264 | top: 0; 2265 | } 2266 | 2267 | .cu-card.case .image .cu-bar { 2268 | position: absolute; 2269 | bottom: 0; 2270 | width: 100%; 2271 | background-color: transparent; 2272 | padding: 0rpx 30rpx; 2273 | } 2274 | 2275 | .cu-card.case.no-card .image { 2276 | margin: 30rpx 30rpx 0; 2277 | overflow: hidden; 2278 | border-radius: 10rpx; 2279 | } 2280 | 2281 | .cu-card.dynamic { 2282 | display: block; 2283 | } 2284 | 2285 | .cu-card.dynamic>.cu-item { 2286 | display: block; 2287 | background-color: var(--white); 2288 | overflow: hidden; 2289 | } 2290 | 2291 | .cu-card.dynamic>.cu-item>.text-content { 2292 | padding: 0 30rpx 0; 2293 | max-height: 6.4em; 2294 | overflow: hidden; 2295 | font-size: 30rpx; 2296 | margin-bottom: 20rpx; 2297 | } 2298 | 2299 | .cu-card.dynamic>.cu-item .square-img { 2300 | width: 100%; 2301 | height: 200rpx; 2302 | border-radius: 6rpx; 2303 | } 2304 | 2305 | .cu-card.dynamic>.cu-item .only-img { 2306 | width: 100%; 2307 | height: 320rpx; 2308 | border-radius: 6rpx; 2309 | } 2310 | 2311 | .cu-card.article { 2312 | display: block; 2313 | } 2314 | 2315 | .cu-card.article>.cu-item { 2316 | padding-bottom: 30rpx; 2317 | } 2318 | 2319 | .cu-card.article>.cu-item .title { 2320 | font-size: 30rpx; 2321 | font-weight: 900; 2322 | color: var(--black); 2323 | line-height: 100rpx; 2324 | padding: 0 30rpx; 2325 | } 2326 | 2327 | .cu-card.article>.cu-item .content { 2328 | display: flex; 2329 | padding: 0 30rpx; 2330 | } 2331 | 2332 | .cu-card.article>.cu-item .content>image { 2333 | width: 240rpx; 2334 | height: 6.4em; 2335 | margin-right: 20rpx; 2336 | border-radius: 6rpx; 2337 | } 2338 | 2339 | .cu-card.article>.cu-item .content .desc { 2340 | flex: 1; 2341 | display: flex; 2342 | flex-direction: column; 2343 | justify-content: space-between; 2344 | } 2345 | 2346 | .cu-card.article>.cu-item .content .text-content { 2347 | font-size: 28rpx; 2348 | color: #888; 2349 | height: 4.8em; 2350 | overflow: hidden; 2351 | } 2352 | 2353 | /* ================== 2354 | 表单 2355 | ==================== */ 2356 | 2357 | .cu-form-group { 2358 | background-color: var(--white); 2359 | padding: 1rpx 30rpx; 2360 | display: flex; 2361 | align-items: center; 2362 | min-height: 100rpx; 2363 | justify-content: space-between; 2364 | } 2365 | 2366 | .cu-form-group+.cu-form-group { 2367 | border-top: 1rpx solid #eee; 2368 | } 2369 | 2370 | .cu-form-group .title { 2371 | text-align: justify; 2372 | padding-right: 30rpx; 2373 | font-size: 30rpx; 2374 | position: relative; 2375 | height: 60rpx; 2376 | line-height: 60rpx; 2377 | } 2378 | 2379 | .cu-form-group input { 2380 | flex: 1; 2381 | font-size: 30rpx; 2382 | color: #555; 2383 | padding-right: 20rpx; 2384 | } 2385 | 2386 | .cu-form-group>text[class*="cuIcon-"] { 2387 | font-size: 36rpx; 2388 | padding: 0; 2389 | box-sizing: border-box; 2390 | } 2391 | 2392 | .cu-form-group textarea { 2393 | margin: 32rpx 0 30rpx; 2394 | height: 4.6em; 2395 | width: 100%; 2396 | line-height: 1.2em; 2397 | flex: 1; 2398 | font-size: 28rpx; 2399 | padding: 0; 2400 | } 2401 | 2402 | .cu-form-group.align-start .title { 2403 | height: 1em; 2404 | margin-top: 32rpx; 2405 | line-height: 1em; 2406 | } 2407 | 2408 | .cu-form-group picker { 2409 | flex: 1; 2410 | padding-right: 40rpx; 2411 | overflow: hidden; 2412 | position: relative; 2413 | } 2414 | 2415 | .cu-form-group picker .picker { 2416 | line-height: 100rpx; 2417 | font-size: 28rpx; 2418 | text-overflow: ellipsis; 2419 | white-space: nowrap; 2420 | overflow: hidden; 2421 | width: 100%; 2422 | text-align: right; 2423 | } 2424 | 2425 | .cu-form-group picker::after { 2426 | font-family: "cuIcon"; 2427 | display: block; 2428 | content: "\e6a3"; 2429 | position: absolute; 2430 | font-size: 34rpx; 2431 | color: var(--grey); 2432 | line-height: 100rpx; 2433 | width: 60rpx; 2434 | text-align: center; 2435 | top: 0; 2436 | bottom: 0; 2437 | right: -20rpx; 2438 | margin: auto; 2439 | } 2440 | 2441 | .cu-form-group textarea[disabled], 2442 | .cu-form-group textarea[disabled] .placeholder { 2443 | color: transparent; 2444 | } 2445 | 2446 | /* ================== 2447 | 模态窗口 2448 | ==================== */ 2449 | 2450 | .cu-modal { 2451 | position: fixed; 2452 | top: 0; 2453 | right: 0; 2454 | bottom: 0; 2455 | left: 0; 2456 | z-index: 1110; 2457 | opacity: 0; 2458 | outline: 0; 2459 | text-align: center; 2460 | -ms-transform: scale(1.185); 2461 | transform: scale(1.185); 2462 | backface-visibility: hidden; 2463 | perspective: 2000rpx; 2464 | background: rgba(0, 0, 0, 0.6); 2465 | transition: all 0.3s ease-in-out 0s; 2466 | pointer-events: none; 2467 | } 2468 | 2469 | .cu-modal::before { 2470 | content: "\200B"; 2471 | display: inline-block; 2472 | height: 100%; 2473 | vertical-align: middle; 2474 | } 2475 | 2476 | .cu-modal.show { 2477 | opacity: 1; 2478 | transition-duration: 0.3s; 2479 | -ms-transform: scale(1); 2480 | transform: scale(1); 2481 | overflow-x: hidden; 2482 | overflow-y: auto; 2483 | pointer-events: auto; 2484 | } 2485 | 2486 | .cu-dialog { 2487 | position: relative; 2488 | display: inline-block; 2489 | vertical-align: middle; 2490 | margin-left: auto; 2491 | margin-right: auto; 2492 | width: 680rpx; 2493 | max-width: 100%; 2494 | background-color: #f8f8f8; 2495 | border-radius: 10rpx; 2496 | overflow: hidden; 2497 | } 2498 | 2499 | .cu-modal.bottom-modal::before { 2500 | vertical-align: bottom; 2501 | } 2502 | 2503 | .cu-modal.bottom-modal .cu-dialog { 2504 | width: 100%; 2505 | border-radius: 0; 2506 | } 2507 | 2508 | .cu-modal.bottom-modal { 2509 | margin-bottom: -1000rpx; 2510 | } 2511 | 2512 | .cu-modal.bottom-modal.show { 2513 | margin-bottom: 0; 2514 | } 2515 | 2516 | .cu-modal.drawer-modal { 2517 | transform: scale(1); 2518 | display: flex; 2519 | } 2520 | 2521 | .cu-modal.drawer-modal .cu-dialog { 2522 | height: 100%; 2523 | min-width: 200rpx; 2524 | border-radius: 0; 2525 | margin: initial; 2526 | transition-duration: 0.3s; 2527 | } 2528 | 2529 | .cu-modal.drawer-modal.justify-start .cu-dialog { 2530 | transform: translateX(-100%); 2531 | } 2532 | 2533 | .cu-modal.drawer-modal.justify-end .cu-dialog { 2534 | transform: translateX(100%); 2535 | } 2536 | 2537 | .cu-modal.drawer-modal.show .cu-dialog { 2538 | transform: translateX(0%); 2539 | } 2540 | .cu-modal .cu-dialog>.cu-bar:first-child .action{ 2541 | min-width: 100rpx; 2542 | margin-right: 0; 2543 | min-height: 100rpx; 2544 | } 2545 | /* ================== 2546 | 轮播 2547 | ==================== */ 2548 | swiper .a-swiper-dot { 2549 | display: inline-block; 2550 | width: 16rpx; 2551 | height: 16rpx; 2552 | background: rgba(0, 0, 0, .3); 2553 | border-radius: 50%; 2554 | vertical-align: middle; 2555 | } 2556 | 2557 | swiper[class*="-dot"] .wx-swiper-dots { 2558 | display: flex; 2559 | align-items: center; 2560 | width: 100%; 2561 | justify-content: center; 2562 | } 2563 | 2564 | swiper.square-dot .wx-swiper-dot { 2565 | background-color: var(--white); 2566 | opacity: 0.4; 2567 | width: 10rpx; 2568 | height: 10rpx; 2569 | border-radius: 20rpx; 2570 | margin: 0 8rpx !important; 2571 | } 2572 | 2573 | swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active { 2574 | opacity: 1; 2575 | width: 30rpx; 2576 | } 2577 | 2578 | swiper.round-dot .wx-swiper-dot { 2579 | width: 10rpx; 2580 | height: 10rpx; 2581 | position: relative; 2582 | margin: 4rpx 8rpx !important; 2583 | } 2584 | 2585 | swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after { 2586 | content: ""; 2587 | position: absolute; 2588 | width: 10rpx; 2589 | height: 10rpx; 2590 | top: 0rpx; 2591 | left: 0rpx; 2592 | right: 0; 2593 | bottom: 0; 2594 | margin: auto; 2595 | background-color: var(--white); 2596 | border-radius: 20rpx; 2597 | } 2598 | 2599 | swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active { 2600 | width: 18rpx; 2601 | height: 18rpx; 2602 | } 2603 | 2604 | .screen-swiper { 2605 | min-height: 375rpx; 2606 | } 2607 | 2608 | .screen-swiper image, 2609 | .screen-swiper video, 2610 | .swiper-item image, 2611 | .swiper-item video { 2612 | width: 100%; 2613 | display: block; 2614 | height: 100%; 2615 | margin: 0; 2616 | pointer-events: none; 2617 | } 2618 | 2619 | .card-swiper { 2620 | height: 420rpx !important; 2621 | } 2622 | 2623 | .card-swiper swiper-item { 2624 | width: 610rpx !important; 2625 | left: 70rpx; 2626 | box-sizing: border-box; 2627 | padding: 40rpx 0rpx 70rpx; 2628 | overflow: initial; 2629 | } 2630 | 2631 | .card-swiper swiper-item .swiper-item { 2632 | width: 100%; 2633 | display: block; 2634 | height: 100%; 2635 | border-radius: 10rpx; 2636 | transform: scale(0.9); 2637 | transition: all 0.2s ease-in 0s; 2638 | overflow: hidden; 2639 | } 2640 | 2641 | .card-swiper swiper-item.cur .swiper-item { 2642 | transform: none; 2643 | transition: all 0.2s ease-in 0s; 2644 | } 2645 | 2646 | 2647 | .tower-swiper { 2648 | height: 420rpx; 2649 | position: relative; 2650 | max-width: 750rpx; 2651 | overflow: hidden; 2652 | } 2653 | 2654 | .tower-swiper .tower-item { 2655 | position: absolute; 2656 | width: 300rpx; 2657 | height: 380rpx; 2658 | top: 0; 2659 | bottom: 0; 2660 | left: 50%; 2661 | margin: auto; 2662 | transition: all 0.2s ease-in 0s; 2663 | opacity: 1; 2664 | } 2665 | 2666 | .tower-swiper .tower-item.none { 2667 | opacity: 0; 2668 | } 2669 | 2670 | .tower-swiper .tower-item .swiper-item { 2671 | width: 100%; 2672 | height: 100%; 2673 | border-radius: 6rpx; 2674 | overflow: hidden; 2675 | } 2676 | 2677 | /* ================== 2678 | 步骤条 2679 | ==================== */ 2680 | 2681 | .cu-steps { 2682 | display: flex; 2683 | } 2684 | 2685 | scroll-view.cu-steps { 2686 | display: block; 2687 | white-space: nowrap; 2688 | } 2689 | 2690 | scroll-view.cu-steps .cu-item { 2691 | display: inline-block; 2692 | } 2693 | 2694 | .cu-steps .cu-item { 2695 | flex: 1; 2696 | text-align: center; 2697 | position: relative; 2698 | min-width: 100rpx; 2699 | } 2700 | 2701 | .cu-steps .cu-item:not([class*="text-"]) { 2702 | color: var(--grey); 2703 | } 2704 | 2705 | .cu-steps .cu-item [class*="cuIcon-"], 2706 | .cu-steps .cu-item .num { 2707 | display: block; 2708 | font-size: 40rpx; 2709 | line-height: 80rpx; 2710 | } 2711 | 2712 | .cu-steps .cu-item::before, 2713 | .cu-steps .cu-item::after, 2714 | .cu-steps.steps-arrow .cu-item::before, 2715 | .cu-steps.steps-arrow .cu-item::after { 2716 | content: ""; 2717 | display: block; 2718 | position: absolute; 2719 | height: 0px; 2720 | width: calc(100% - 80rpx); 2721 | border-bottom: 1px solid #ccc; 2722 | left: calc(0px - (100% - 80rpx) / 2); 2723 | top: 40rpx; 2724 | z-index: 0; 2725 | } 2726 | 2727 | .cu-steps.steps-arrow .cu-item::before, 2728 | .cu-steps.steps-arrow .cu-item::after { 2729 | content: "\e6a3"; 2730 | font-family: "cuIcon"; 2731 | height: 30rpx; 2732 | border-bottom-width: 0px; 2733 | line-height: 30rpx; 2734 | top: 0; 2735 | bottom: 0; 2736 | margin: auto; 2737 | color: #ccc; 2738 | } 2739 | 2740 | .cu-steps.steps-bottom .cu-item::before, 2741 | .cu-steps.steps-bottom .cu-item::after { 2742 | bottom: 40rpx; 2743 | top: initial; 2744 | } 2745 | 2746 | .cu-steps .cu-item::after { 2747 | border-bottom: 1px solid currentColor; 2748 | width: 0px; 2749 | transition: all 0.3s ease-in-out 0s; 2750 | } 2751 | 2752 | .cu-steps .cu-item[class*="text-"]::after { 2753 | width: calc(100% - 80rpx); 2754 | color: currentColor; 2755 | } 2756 | 2757 | .cu-steps .cu-item:first-child::before, 2758 | .cu-steps .cu-item:first-child::after { 2759 | display: none; 2760 | } 2761 | 2762 | .cu-steps .cu-item .num { 2763 | width: 40rpx; 2764 | height: 40rpx; 2765 | border-radius: 50%; 2766 | line-height: 40rpx; 2767 | margin: 20rpx auto; 2768 | font-size: 24rpx; 2769 | border: 1px solid currentColor; 2770 | position: relative; 2771 | overflow: hidden; 2772 | } 2773 | 2774 | .cu-steps .cu-item[class*="text-"] .num { 2775 | background-color: currentColor; 2776 | } 2777 | 2778 | .cu-steps .cu-item .num::before, 2779 | .cu-steps .cu-item .num::after { 2780 | content: attr(data-index); 2781 | position: absolute; 2782 | left: 0; 2783 | right: 0; 2784 | top: 0; 2785 | bottom: 0; 2786 | margin: auto; 2787 | transition: all 0.3s ease-in-out 0s; 2788 | transform: translateY(0rpx); 2789 | } 2790 | 2791 | .cu-steps .cu-item[class*="text-"] .num::before { 2792 | transform: translateY(-40rpx); 2793 | color: var(--white); 2794 | } 2795 | 2796 | .cu-steps .cu-item .num::after { 2797 | transform: translateY(40rpx); 2798 | color: var(--white); 2799 | transition: all 0.3s ease-in-out 0s; 2800 | } 2801 | 2802 | .cu-steps .cu-item[class*="text-"] .num::after { 2803 | content: "\e645"; 2804 | font-family: "cuIcon"; 2805 | color: var(--white); 2806 | transform: translateY(0rpx); 2807 | } 2808 | 2809 | .cu-steps .cu-item[class*="text-"] .num.err::after { 2810 | content: "\e646"; 2811 | } 2812 | 2813 | /* ================== 2814 | 布局 2815 | ==================== */ 2816 | 2817 | /* -- flex弹性布局 -- */ 2818 | 2819 | .flex { 2820 | display: flex; 2821 | } 2822 | 2823 | .basis-xs { 2824 | flex-basis: 20%; 2825 | } 2826 | 2827 | .basis-sm { 2828 | flex-basis: 40%; 2829 | } 2830 | 2831 | .basis-df { 2832 | flex-basis: 50%; 2833 | } 2834 | 2835 | .basis-lg { 2836 | flex-basis: 60%; 2837 | } 2838 | 2839 | .basis-xl { 2840 | flex-basis: 80%; 2841 | } 2842 | 2843 | .flex-sub { 2844 | flex: 1; 2845 | } 2846 | 2847 | .flex-twice { 2848 | flex: 2; 2849 | } 2850 | 2851 | .flex-treble { 2852 | flex: 3; 2853 | } 2854 | 2855 | .flex-direction { 2856 | flex-direction: column; 2857 | } 2858 | 2859 | .flex-wrap { 2860 | flex-wrap: wrap; 2861 | } 2862 | 2863 | .align-start { 2864 | align-items: flex-start; 2865 | } 2866 | 2867 | .align-end { 2868 | align-items: flex-end; 2869 | } 2870 | 2871 | .align-center { 2872 | align-items: center; 2873 | } 2874 | 2875 | .align-stretch { 2876 | align-items: stretch; 2877 | } 2878 | 2879 | .self-start { 2880 | align-self: flex-start; 2881 | } 2882 | 2883 | .self-center { 2884 | align-self: flex-center; 2885 | } 2886 | 2887 | .self-end { 2888 | align-self: flex-end; 2889 | } 2890 | 2891 | .self-stretch { 2892 | align-self: stretch; 2893 | } 2894 | 2895 | .align-stretch { 2896 | align-items: stretch; 2897 | } 2898 | 2899 | .justify-start { 2900 | justify-content: flex-start; 2901 | } 2902 | 2903 | .justify-end { 2904 | justify-content: flex-end; 2905 | } 2906 | 2907 | .justify-center { 2908 | justify-content: center; 2909 | } 2910 | 2911 | .justify-between { 2912 | justify-content: space-between; 2913 | } 2914 | 2915 | .justify-around { 2916 | justify-content: space-around; 2917 | } 2918 | 2919 | /* grid布局 */ 2920 | 2921 | .grid { 2922 | display: flex; 2923 | flex-wrap: wrap; 2924 | } 2925 | 2926 | .grid.grid-square { 2927 | overflow: hidden; 2928 | } 2929 | 2930 | .grid.grid-square .cu-tag { 2931 | position: absolute; 2932 | right: 0; 2933 | top: 0; 2934 | border-bottom-left-radius: 6rpx; 2935 | padding: 6rpx 12rpx; 2936 | height: auto; 2937 | background-color: rgba(0, 0, 0, 0.5); 2938 | } 2939 | 2940 | .grid.grid-square>view>text[class*="cuIcon-"] { 2941 | font-size: 52rpx; 2942 | position: absolute; 2943 | color: var(--grey); 2944 | margin: auto; 2945 | top: 0; 2946 | bottom: 0; 2947 | left: 0; 2948 | right: 0; 2949 | display: flex; 2950 | justify-content: center; 2951 | align-items: center; 2952 | flex-direction: column; 2953 | } 2954 | 2955 | .grid.grid-square>view { 2956 | margin-right: 20rpx; 2957 | margin-bottom: 20rpx; 2958 | border-radius: 6rpx; 2959 | position: relative; 2960 | overflow: hidden; 2961 | } 2962 | 2963 | .grid.grid-square>view.bg-img image { 2964 | width: 100%; 2965 | height: 100%; 2966 | position: absolute; 2967 | } 2968 | 2969 | .grid.col-1.grid-square>view { 2970 | padding-bottom: 100%; 2971 | height: 0; 2972 | margin-right: 0; 2973 | } 2974 | 2975 | .grid.col-2.grid-square>view { 2976 | padding-bottom: calc((100% - 20rpx)/2); 2977 | height: 0; 2978 | width: calc((100% - 20rpx)/2); 2979 | } 2980 | 2981 | .grid.col-3.grid-square>view { 2982 | padding-bottom: calc((100% - 40rpx)/3); 2983 | height: 0; 2984 | width: calc((100% - 40rpx)/3); 2985 | } 2986 | 2987 | .grid.col-4.grid-square>view { 2988 | padding-bottom: calc((100% - 60rpx)/4); 2989 | height: 0; 2990 | width: calc((100% - 60rpx)/4); 2991 | } 2992 | 2993 | .grid.col-5.grid-square>view { 2994 | padding-bottom: calc((100% - 80rpx)/5); 2995 | height: 0; 2996 | width: calc((100% - 80rpx)/5); 2997 | } 2998 | 2999 | .grid.col-2.grid-square>view:nth-child(2n), 3000 | .grid.col-3.grid-square>view:nth-child(3n), 3001 | .grid.col-4.grid-square>view:nth-child(4n), 3002 | .grid.col-5.grid-square>view:nth-child(5n){ 3003 | margin-right: 0; 3004 | } 3005 | 3006 | .grid.col-1>view { 3007 | width: 100%; 3008 | } 3009 | 3010 | .grid.col-2>view { 3011 | width: 50%; 3012 | } 3013 | 3014 | .grid.col-3>view { 3015 | width: 33.33%; 3016 | } 3017 | 3018 | .grid.col-4>view { 3019 | width: 25%; 3020 | } 3021 | 3022 | .grid.col-5>view { 3023 | width: 20%; 3024 | } 3025 | 3026 | /* -- 内外边距 -- */ 3027 | 3028 | .margin-0 { 3029 | margin: 0; 3030 | } 3031 | 3032 | .margin-xs { 3033 | margin: 10rpx; 3034 | } 3035 | 3036 | .margin-sm { 3037 | margin: 20rpx; 3038 | } 3039 | 3040 | .margin { 3041 | margin: 30rpx; 3042 | } 3043 | 3044 | .margin-lg { 3045 | margin: 40rpx; 3046 | } 3047 | 3048 | .margin-xl { 3049 | margin: 50rpx; 3050 | } 3051 | 3052 | .margin-top-xs { 3053 | margin-top: 10rpx; 3054 | } 3055 | 3056 | .margin-top-sm { 3057 | margin-top: 20rpx; 3058 | } 3059 | 3060 | .margin-top { 3061 | margin-top: 30rpx; 3062 | } 3063 | 3064 | .margin-top-lg { 3065 | margin-top: 40rpx; 3066 | } 3067 | 3068 | .margin-top-xl { 3069 | margin-top: 50rpx; 3070 | } 3071 | 3072 | .margin-right-xs { 3073 | margin-right: 10rpx; 3074 | } 3075 | 3076 | .margin-right-sm { 3077 | margin-right: 20rpx; 3078 | } 3079 | 3080 | .margin-right { 3081 | margin-right: 30rpx; 3082 | } 3083 | 3084 | .margin-right-lg { 3085 | margin-right: 40rpx; 3086 | } 3087 | 3088 | .margin-right-xl { 3089 | margin-right: 50rpx; 3090 | } 3091 | 3092 | .margin-bottom-xs { 3093 | margin-bottom: 10rpx; 3094 | } 3095 | 3096 | .margin-bottom-sm { 3097 | margin-bottom: 20rpx; 3098 | } 3099 | 3100 | .margin-bottom { 3101 | margin-bottom: 30rpx; 3102 | } 3103 | 3104 | .margin-bottom-lg { 3105 | margin-bottom: 40rpx; 3106 | } 3107 | 3108 | .margin-bottom-xl { 3109 | margin-bottom: 50rpx; 3110 | } 3111 | 3112 | .margin-left-xs { 3113 | margin-left: 10rpx; 3114 | } 3115 | 3116 | .margin-left-sm { 3117 | margin-left: 20rpx; 3118 | } 3119 | 3120 | .margin-left { 3121 | margin-left: 30rpx; 3122 | } 3123 | 3124 | .margin-left-lg { 3125 | margin-left: 40rpx; 3126 | } 3127 | 3128 | .margin-left-xl { 3129 | margin-left: 50rpx; 3130 | } 3131 | 3132 | .margin-lr-xs { 3133 | margin-left: 10rpx; 3134 | margin-right: 10rpx; 3135 | } 3136 | 3137 | .margin-lr-sm { 3138 | margin-left: 20rpx; 3139 | margin-right: 20rpx; 3140 | } 3141 | 3142 | .margin-lr { 3143 | margin-left: 30rpx; 3144 | margin-right: 30rpx; 3145 | } 3146 | 3147 | .margin-lr-lg { 3148 | margin-left: 40rpx; 3149 | margin-right: 40rpx; 3150 | } 3151 | 3152 | .margin-lr-xl { 3153 | margin-left: 50rpx; 3154 | margin-right: 50rpx; 3155 | } 3156 | 3157 | .margin-tb-xs { 3158 | margin-top: 10rpx; 3159 | margin-bottom: 10rpx; 3160 | } 3161 | 3162 | .margin-tb-sm { 3163 | margin-top: 20rpx; 3164 | margin-bottom: 20rpx; 3165 | } 3166 | 3167 | .margin-tb { 3168 | margin-top: 30rpx; 3169 | margin-bottom: 30rpx; 3170 | } 3171 | 3172 | .margin-tb-lg { 3173 | margin-top: 40rpx; 3174 | margin-bottom: 40rpx; 3175 | } 3176 | 3177 | .margin-tb-xl { 3178 | margin-top: 50rpx; 3179 | margin-bottom: 50rpx; 3180 | } 3181 | 3182 | .padding-0 { 3183 | padding: 0; 3184 | } 3185 | 3186 | .padding-xs { 3187 | padding: 10rpx; 3188 | } 3189 | 3190 | .padding-sm { 3191 | padding: 20rpx; 3192 | } 3193 | 3194 | .padding { 3195 | padding: 30rpx; 3196 | } 3197 | 3198 | .padding-lg { 3199 | padding: 40rpx; 3200 | } 3201 | 3202 | .padding-xl { 3203 | padding: 50rpx; 3204 | } 3205 | 3206 | .padding-top-xs { 3207 | padding-top: 10rpx; 3208 | } 3209 | 3210 | .padding-top-sm { 3211 | padding-top: 20rpx; 3212 | } 3213 | 3214 | .padding-top { 3215 | padding-top: 30rpx; 3216 | } 3217 | 3218 | .padding-top-lg { 3219 | padding-top: 40rpx; 3220 | } 3221 | 3222 | .padding-top-xl { 3223 | padding-top: 50rpx; 3224 | } 3225 | 3226 | .padding-right-xs { 3227 | padding-right: 10rpx; 3228 | } 3229 | 3230 | .padding-right-sm { 3231 | padding-right: 20rpx; 3232 | } 3233 | 3234 | .padding-right { 3235 | padding-right: 30rpx; 3236 | } 3237 | 3238 | .padding-right-lg { 3239 | padding-right: 40rpx; 3240 | } 3241 | 3242 | .padding-right-xl { 3243 | padding-right: 50rpx; 3244 | } 3245 | 3246 | .padding-bottom-xs { 3247 | padding-bottom: 10rpx; 3248 | } 3249 | 3250 | .padding-bottom-sm { 3251 | padding-bottom: 20rpx; 3252 | } 3253 | 3254 | .padding-bottom { 3255 | padding-bottom: 30rpx; 3256 | } 3257 | 3258 | .padding-bottom-lg { 3259 | padding-bottom: 40rpx; 3260 | } 3261 | 3262 | .padding-bottom-xl { 3263 | padding-bottom: 50rpx; 3264 | } 3265 | 3266 | .padding-left-xs { 3267 | padding-left: 10rpx; 3268 | } 3269 | 3270 | .padding-left-sm { 3271 | padding-left: 20rpx; 3272 | } 3273 | 3274 | .padding-left { 3275 | padding-left: 30rpx; 3276 | } 3277 | 3278 | .padding-left-lg { 3279 | padding-left: 40rpx; 3280 | } 3281 | 3282 | .padding-left-xl { 3283 | padding-left: 50rpx; 3284 | } 3285 | 3286 | .padding-lr-xs { 3287 | padding-left: 10rpx; 3288 | padding-right: 10rpx; 3289 | } 3290 | 3291 | .padding-lr-sm { 3292 | padding-left: 20rpx; 3293 | padding-right: 20rpx; 3294 | } 3295 | 3296 | .padding-lr { 3297 | padding-left: 30rpx; 3298 | padding-right: 30rpx; 3299 | } 3300 | 3301 | .padding-lr-lg { 3302 | padding-left: 40rpx; 3303 | padding-right: 40rpx; 3304 | } 3305 | 3306 | .padding-lr-xl { 3307 | padding-left: 50rpx; 3308 | padding-right: 50rpx; 3309 | } 3310 | 3311 | .padding-tb-xs { 3312 | padding-top: 10rpx; 3313 | padding-bottom: 10rpx; 3314 | } 3315 | 3316 | .padding-tb-sm { 3317 | padding-top: 20rpx; 3318 | padding-bottom: 20rpx; 3319 | } 3320 | 3321 | .padding-tb { 3322 | padding-top: 30rpx; 3323 | padding-bottom: 30rpx; 3324 | } 3325 | 3326 | .padding-tb-lg { 3327 | padding-top: 40rpx; 3328 | padding-bottom: 40rpx; 3329 | } 3330 | 3331 | .padding-tb-xl { 3332 | padding-top: 50rpx; 3333 | padding-bottom: 50rpx; 3334 | } 3335 | 3336 | /* -- 浮动 -- */ 3337 | 3338 | .cf::after, 3339 | .cf::before { 3340 | content: " "; 3341 | display: table; 3342 | } 3343 | 3344 | .cf::after { 3345 | clear: both; 3346 | } 3347 | 3348 | .fl { 3349 | float: left; 3350 | } 3351 | 3352 | .fr { 3353 | float: right; 3354 | } 3355 | 3356 | /* ================== 3357 | 背景 3358 | ==================== */ 3359 | 3360 | .line-red::after, 3361 | .lines-red::after { 3362 | border-color: var(--red); 3363 | } 3364 | 3365 | .line-orange::after, 3366 | .lines-orange::after { 3367 | border-color: var(--orange); 3368 | } 3369 | 3370 | .line-yellow::after, 3371 | .lines-yellow::after { 3372 | border-color: var(--yellow); 3373 | } 3374 | 3375 | .line-olive::after, 3376 | .lines-olive::after { 3377 | border-color: var(--olive); 3378 | } 3379 | 3380 | .line-green::after, 3381 | .lines-green::after { 3382 | border-color: var(--green); 3383 | } 3384 | 3385 | .line-cyan::after, 3386 | .lines-cyan::after { 3387 | border-color: var(--cyan); 3388 | } 3389 | 3390 | .line-blue::after, 3391 | .lines-blue::after { 3392 | border-color: var(--blue); 3393 | } 3394 | 3395 | .line-purple::after, 3396 | .lines-purple::after { 3397 | border-color: var(--purple); 3398 | } 3399 | 3400 | .line-mauve::after, 3401 | .lines-mauve::after { 3402 | border-color: var(--mauve); 3403 | } 3404 | 3405 | .line-pink::after, 3406 | .lines-pink::after { 3407 | border-color: var(--pink); 3408 | } 3409 | 3410 | .line-brown::after, 3411 | .lines-brown::after { 3412 | border-color: var(--brown); 3413 | } 3414 | 3415 | .line-grey::after, 3416 | .lines-grey::after { 3417 | border-color: var(--grey); 3418 | } 3419 | 3420 | .line-gray::after, 3421 | .lines-gray::after { 3422 | border-color: var(--gray); 3423 | } 3424 | 3425 | .line-black::after, 3426 | .lines-black::after { 3427 | border-color: var(--black); 3428 | } 3429 | 3430 | .line-white::after, 3431 | .lines-white::after { 3432 | border-color: var(--white); 3433 | } 3434 | 3435 | .bg-red { 3436 | background-color: var(--red); 3437 | color: var(--white); 3438 | } 3439 | 3440 | .bg-orange { 3441 | background-color: var(--orange); 3442 | color: var(--white); 3443 | } 3444 | 3445 | .bg-yellow { 3446 | background-color: var(--yellow); 3447 | color: var(--black); 3448 | } 3449 | 3450 | .bg-olive { 3451 | background-color: var(--olive); 3452 | color: var(--white); 3453 | } 3454 | 3455 | .bg-green { 3456 | background-color: var(--green); 3457 | color: var(--white); 3458 | } 3459 | 3460 | .bg-cyan { 3461 | background-color: var(--cyan); 3462 | color: var(--white); 3463 | } 3464 | 3465 | .bg-blue { 3466 | background-color: var(--blue); 3467 | color: var(--white); 3468 | } 3469 | 3470 | .bg-purple { 3471 | background-color: var(--purple); 3472 | color: var(--white); 3473 | } 3474 | 3475 | .bg-mauve { 3476 | background-color: var(--mauve); 3477 | color: var(--white); 3478 | } 3479 | 3480 | .bg-pink { 3481 | background-color: var(--pink); 3482 | color: var(--white); 3483 | } 3484 | 3485 | .bg-brown { 3486 | background-color: var(--brown); 3487 | color: var(--white); 3488 | } 3489 | 3490 | .bg-grey { 3491 | background-color: var(--grey); 3492 | color: var(--white); 3493 | } 3494 | 3495 | .bg-gray { 3496 | background-color: #f0f0f0; 3497 | color: var(--black); 3498 | } 3499 | 3500 | .bg-black { 3501 | background-color: var(--black); 3502 | color: var(--white); 3503 | } 3504 | 3505 | .bg-white { 3506 | background-color: var(--white); 3507 | color: var(--darkGray); 3508 | } 3509 | 3510 | .bg-shadeTop { 3511 | background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01)); 3512 | color: var(--white); 3513 | } 3514 | 3515 | .bg-shadeBottom { 3516 | background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1)); 3517 | color: var(--white); 3518 | } 3519 | 3520 | .bg-red.light { 3521 | color: var(--red); 3522 | background-color: var(--redLight); 3523 | } 3524 | 3525 | .bg-orange.light { 3526 | color: var(--orange); 3527 | background-color: var(--orangeLight); 3528 | } 3529 | 3530 | .bg-yellow.light { 3531 | color: var(--yellow); 3532 | background-color: var(--yellowLight); 3533 | } 3534 | 3535 | .bg-olive.light { 3536 | color: var(--olive); 3537 | background-color: var(--oliveLight); 3538 | } 3539 | 3540 | .bg-green.light { 3541 | color: var(--green); 3542 | background-color: var(--greenLight); 3543 | } 3544 | 3545 | .bg-cyan.light { 3546 | color: var(--cyan); 3547 | background-color: var(--cyanLight); 3548 | } 3549 | 3550 | .bg-blue.light { 3551 | color: var(--blue); 3552 | background-color: var(--blueLight); 3553 | } 3554 | 3555 | .bg-purple.light { 3556 | color: var(--purple); 3557 | background-color: var(--purpleLight); 3558 | } 3559 | 3560 | .bg-mauve.light { 3561 | color: var(--mauve); 3562 | background-color: var(--mauveLight); 3563 | } 3564 | 3565 | .bg-pink.light { 3566 | color: var(--pink); 3567 | background-color: var(--pinkLight); 3568 | } 3569 | 3570 | .bg-brown.light { 3571 | color: var(--brown); 3572 | background-color: var(--brownLight); 3573 | } 3574 | 3575 | .bg-grey.light { 3576 | color: var(--grey); 3577 | background-color: var(--greyLight); 3578 | } 3579 | 3580 | .bg-gradual-red { 3581 | background-image: var(--gradualRed); 3582 | color: var(--white); 3583 | } 3584 | 3585 | .bg-gradual-orange { 3586 | background-image: var(--gradualOrange); 3587 | color: var(--white); 3588 | } 3589 | 3590 | .bg-gradual-green { 3591 | background-image: var(--gradualGreen); 3592 | color: var(--white); 3593 | } 3594 | 3595 | .bg-gradual-purple { 3596 | background-image: var(--gradualPurple); 3597 | color: var(--white); 3598 | } 3599 | 3600 | .bg-gradual-pink { 3601 | background-image: var(--gradualPink); 3602 | color: var(--white); 3603 | } 3604 | 3605 | .bg-gradual-blue { 3606 | background-image: var(--gradualBlue); 3607 | color: var(--white); 3608 | } 3609 | 3610 | .shadow[class*="-red"] { 3611 | box-shadow: var(--ShadowSize) var(--redShadow); 3612 | } 3613 | 3614 | .shadow[class*="-orange"] { 3615 | box-shadow: var(--ShadowSize) var(--orangeShadow); 3616 | } 3617 | 3618 | .shadow[class*="-yellow"] { 3619 | box-shadow: var(--ShadowSize) var(--yellowShadow); 3620 | } 3621 | 3622 | .shadow[class*="-olive"] { 3623 | box-shadow: var(--ShadowSize) var(--oliveShadow); 3624 | } 3625 | 3626 | .shadow[class*="-green"] { 3627 | box-shadow: var(--ShadowSize) var(--greenShadow); 3628 | } 3629 | 3630 | .shadow[class*="-cyan"] { 3631 | box-shadow: var(--ShadowSize) var(--cyanShadow); 3632 | } 3633 | 3634 | .shadow[class*="-blue"] { 3635 | box-shadow: var(--ShadowSize) var(--blueShadow); 3636 | } 3637 | 3638 | .shadow[class*="-purple"] { 3639 | box-shadow: var(--ShadowSize) var(--purpleShadow); 3640 | } 3641 | 3642 | .shadow[class*="-mauve"] { 3643 | box-shadow: var(--ShadowSize) var(--mauveShadow); 3644 | } 3645 | 3646 | .shadow[class*="-pink"] { 3647 | box-shadow: var(--ShadowSize) var(--pinkShadow); 3648 | } 3649 | 3650 | .shadow[class*="-brown"] { 3651 | box-shadow: var(--ShadowSize) var(--brownShadow); 3652 | } 3653 | 3654 | .shadow[class*="-grey"] { 3655 | box-shadow: var(--ShadowSize) var(--greyShadow); 3656 | } 3657 | 3658 | .shadow[class*="-gray"] { 3659 | box-shadow: var(--ShadowSize) var(--grayShadow); 3660 | } 3661 | 3662 | .shadow[class*="-black"] { 3663 | box-shadow: var(--ShadowSize) var(--blackShadow); 3664 | } 3665 | 3666 | .shadow[class*="-white"] { 3667 | box-shadow: var(--ShadowSize) var(--blackShadow); 3668 | } 3669 | 3670 | .text-shadow[class*="-red"] { 3671 | text-shadow: var(--ShadowSize) var(--redShadow); 3672 | } 3673 | 3674 | .text-shadow[class*="-orange"] { 3675 | text-shadow: var(--ShadowSize) var(--orangeShadow); 3676 | } 3677 | 3678 | .text-shadow[class*="-yellow"] { 3679 | text-shadow: var(--ShadowSize) var(--yellowShadow); 3680 | } 3681 | 3682 | .text-shadow[class*="-olive"] { 3683 | text-shadow: var(--ShadowSize) var(--oliveShadow); 3684 | } 3685 | 3686 | .text-shadow[class*="-green"] { 3687 | text-shadow: var(--ShadowSize) var(--greenShadow); 3688 | } 3689 | 3690 | .text-shadow[class*="-cyan"] { 3691 | text-shadow: var(--ShadowSize) var(--cyanShadow); 3692 | } 3693 | 3694 | .text-shadow[class*="-blue"] { 3695 | text-shadow: var(--ShadowSize) var(--blueShadow); 3696 | } 3697 | 3698 | .text-shadow[class*="-purple"] { 3699 | text-shadow: var(--ShadowSize) var(--purpleShadow); 3700 | } 3701 | 3702 | .text-shadow[class*="-mauve"] { 3703 | text-shadow: var(--ShadowSize) var(--mauveShadow); 3704 | } 3705 | 3706 | .text-shadow[class*="-pink"] { 3707 | text-shadow: var(--ShadowSize) var(--pinkShadow); 3708 | } 3709 | 3710 | .text-shadow[class*="-brown"] { 3711 | text-shadow: var(--ShadowSize) var(--brownShadow); 3712 | } 3713 | 3714 | .text-shadow[class*="-grey"] { 3715 | text-shadow: var(--ShadowSize) var(--greyShadow); 3716 | } 3717 | 3718 | .text-shadow[class*="-gray"] { 3719 | text-shadow: var(--ShadowSize) var(--grayShadow); 3720 | } 3721 | 3722 | .text-shadow[class*="-black"] { 3723 | text-shadow: var(--ShadowSize) var(--blackShadow); 3724 | } 3725 | 3726 | .bg-img { 3727 | background-size: cover; 3728 | background-position: center; 3729 | background-repeat: no-repeat; 3730 | } 3731 | 3732 | .bg-mask { 3733 | background-color: var(--black); 3734 | position: relative; 3735 | } 3736 | 3737 | .bg-mask::after { 3738 | content: ""; 3739 | border-radius: inherit; 3740 | width: 100%; 3741 | height: 100%; 3742 | display: block; 3743 | background-color: rgba(0, 0, 0, 0.4); 3744 | position: absolute; 3745 | left: 0; 3746 | right: 0; 3747 | bottom: 0; 3748 | top: 0; 3749 | } 3750 | 3751 | .bg-mask view, 3752 | .bg-mask cover-view { 3753 | z-index: 5; 3754 | position: relative; 3755 | } 3756 | 3757 | .bg-video { 3758 | position: relative; 3759 | } 3760 | 3761 | .bg-video video { 3762 | display: block; 3763 | height: 100%; 3764 | width: 100%; 3765 | -o-object-fit: cover; 3766 | object-fit: cover; 3767 | position: absolute; 3768 | top: 0; 3769 | z-index: 0; 3770 | pointer-events: none; 3771 | } 3772 | 3773 | /* ================== 3774 | 文本 3775 | ==================== */ 3776 | 3777 | .text-xs { 3778 | font-size: 20rpx; 3779 | } 3780 | 3781 | .text-sm { 3782 | font-size: 24rpx; 3783 | } 3784 | 3785 | .text-df { 3786 | font-size: 28rpx; 3787 | } 3788 | 3789 | .text-lg { 3790 | font-size: 32rpx; 3791 | } 3792 | 3793 | .text-xl { 3794 | font-size: 36rpx; 3795 | } 3796 | 3797 | .text-xxl { 3798 | font-size: 44rpx; 3799 | } 3800 | 3801 | .text-sl { 3802 | font-size: 80rpx; 3803 | } 3804 | 3805 | .text-xsl { 3806 | font-size: 120rpx; 3807 | } 3808 | 3809 | .text-Abc { 3810 | text-transform: Capitalize; 3811 | } 3812 | 3813 | .text-ABC { 3814 | text-transform: Uppercase; 3815 | } 3816 | 3817 | .text-abc { 3818 | text-transform: Lowercase; 3819 | } 3820 | 3821 | .text-price::before { 3822 | content: "¥"; 3823 | font-size: 80%; 3824 | margin-right: 4rpx; 3825 | } 3826 | 3827 | .text-cut { 3828 | text-overflow: ellipsis; 3829 | white-space: nowrap; 3830 | overflow: hidden; 3831 | } 3832 | 3833 | .text-bold { 3834 | font-weight: bold; 3835 | } 3836 | 3837 | .text-center { 3838 | text-align: center; 3839 | } 3840 | 3841 | .text-content { 3842 | line-height: 1.6; 3843 | } 3844 | 3845 | .text-left { 3846 | text-align: left; 3847 | } 3848 | 3849 | .text-right { 3850 | text-align: right; 3851 | } 3852 | 3853 | .text-red, 3854 | .line-red, 3855 | .lines-red { 3856 | color: var(--red); 3857 | } 3858 | 3859 | .text-orange, 3860 | .line-orange, 3861 | .lines-orange { 3862 | color: var(--orange); 3863 | } 3864 | 3865 | .text-yellow, 3866 | .line-yellow, 3867 | .lines-yellow { 3868 | color: var(--yellow); 3869 | } 3870 | 3871 | .text-olive, 3872 | .line-olive, 3873 | .lines-olive { 3874 | color: var(--olive); 3875 | } 3876 | 3877 | .text-green, 3878 | .line-green, 3879 | .lines-green { 3880 | color: var(--green); 3881 | } 3882 | 3883 | .text-cyan, 3884 | .line-cyan, 3885 | .lines-cyan { 3886 | color: var(--cyan); 3887 | } 3888 | 3889 | .text-blue, 3890 | .line-blue, 3891 | .lines-blue { 3892 | color: var(--blue); 3893 | } 3894 | 3895 | .text-purple, 3896 | .line-purple, 3897 | .lines-purple { 3898 | color: var(--purple); 3899 | } 3900 | 3901 | .text-mauve, 3902 | .line-mauve, 3903 | .lines-mauve { 3904 | color: var(--mauve); 3905 | } 3906 | 3907 | .text-pink, 3908 | .line-pink, 3909 | .lines-pink { 3910 | color: var(--pink); 3911 | } 3912 | 3913 | .text-brown, 3914 | .line-brown, 3915 | .lines-brown { 3916 | color: var(--brown); 3917 | } 3918 | 3919 | .text-grey, 3920 | .line-grey, 3921 | .lines-grey { 3922 | color: var(--grey); 3923 | } 3924 | 3925 | .text-gray, 3926 | .line-gray, 3927 | .lines-gray { 3928 | color: var(--gray); 3929 | } 3930 | 3931 | .text-black, 3932 | .line-black, 3933 | .lines-black { 3934 | color: var(--black); 3935 | } 3936 | 3937 | .text-white, 3938 | .line-white, 3939 | .lines-white { 3940 | color: var(--white); 3941 | } 3942 | -------------------------------------------------------------------------------- /miniprogram/images/arrow-r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inspurer/CSUTeachingMiniprogram/67593c587ff30bcbcc8afb71de55b10be37cbb62/miniprogram/images/arrow-r.png -------------------------------------------------------------------------------- /miniprogram/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inspurer/CSUTeachingMiniprogram/67593c587ff30bcbcc8afb71de55b10be37cbb62/miniprogram/images/logo.jpg -------------------------------------------------------------------------------- /miniprogram/images/notice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inspurer/CSUTeachingMiniprogram/67593c587ff30bcbcc8afb71de55b10be37cbb62/miniprogram/images/notice.png -------------------------------------------------------------------------------- /miniprogram/images/owl-login-arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inspurer/CSUTeachingMiniprogram/67593c587ff30bcbcc8afb71de55b10be37cbb62/miniprogram/images/owl-login-arm.png -------------------------------------------------------------------------------- /miniprogram/images/owl-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inspurer/CSUTeachingMiniprogram/67593c587ff30bcbcc8afb71de55b10be37cbb62/miniprogram/images/owl-login.png -------------------------------------------------------------------------------- /miniprogram/images/responsor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inspurer/CSUTeachingMiniprogram/67593c587ff30bcbcc8afb71de55b10be37cbb62/miniprogram/images/responsor.png -------------------------------------------------------------------------------- /miniprogram/images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inspurer/CSUTeachingMiniprogram/67593c587ff30bcbcc8afb71de55b10be37cbb62/miniprogram/images/up.png -------------------------------------------------------------------------------- /miniprogram/pages/about/about.js: -------------------------------------------------------------------------------- 1 | // pages/users/about/about.js 2 | Page({ 3 | 4 | /** 5 | * 页面的初始数据 6 | */ 7 | data: { 8 | 9 | }, 10 | 11 | /** 12 | * 生命周期函数--监听页面加载 13 | */ 14 | onLoad: function (options) { 15 | }, 16 | copy(e) { 17 | wx.setClipboardData({ 18 | data: e.currentTarget.dataset.copy, 19 | success: res => { 20 | wx.showToast({ 21 | title: '已复制', 22 | duration: 1000, 23 | }) 24 | } 25 | }) 26 | }, 27 | /** 28 | * 生命周期函数--监听页面初次渲染完成 29 | */ 30 | onReady: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面显示 36 | */ 37 | onShow: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面隐藏 43 | */ 44 | onHide: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 生命周期函数--监听页面卸载 50 | */ 51 | onUnload: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面相关事件处理函数--监听用户下拉动作 57 | */ 58 | onPullDownRefresh: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 页面上拉触底事件的处理函数 64 | */ 65 | onReachBottom: function () { 66 | 67 | }, 68 | 69 | /** 70 | * 用户点击右上角分享 71 | */ 72 | 73 | /****长按保存图片 */ 74 | saveImg: function (e) { 75 | console.log(e.currentTarget.dataset.src) 76 | var src = e.currentTarget.dataset.src; 77 | let that = this 78 | wx.getSetting({ 79 | success(res) { 80 | //未授权 先授权 然后保存 81 | if (!res.authSetting['scope.writePhotosAlbum']) { 82 | wx.authorize({ 83 | scope: 'scope.writePhotosAlbum', 84 | success(re) { 85 | that.saveToBlum(src); 86 | } 87 | }) 88 | } else { 89 | //已授 直接调用保存到相册方法 90 | that.saveToBlum(src); 91 | } 92 | } 93 | }) 94 | }, 95 | 96 | //保存到相册方法 97 | saveToBlum: function (src) { 98 | let imgUrl = src; 99 | wx.getImageInfo({ 100 | src: imgUrl, 101 | success: function (ret) { 102 | var path = ret.path; 103 | wx.saveImageToPhotosAlbum({ 104 | filePath: path, 105 | success(result) { 106 | wx.showToast({ 107 | title: '保存成功', 108 | icon: 'success' 109 | }) 110 | }, 111 | }) 112 | } 113 | }) 114 | }, 115 | }) -------------------------------------------------------------------------------- /miniprogram/pages/about/about.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } -------------------------------------------------------------------------------- /miniprogram/pages/about/about.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 关于小程序 7 | 8 | 9 | 1、小程序由作者于2019年10月中旬开发完成。 10 | 2、旨在为中南学子提供方便快捷的教务系统移动端浏览体验,欢迎大家提供宝贵改进意见。 11 | 12 | 13 | 14 | 15 | 16 | 使用说明 17 | 18 | 19 | 1、使用学号和教务系统密码登录即可。 20 | 2、第一次使用需要注册,将学号和教务系统密码保存至服务器。 21 | 3、注册后学号将和微信账号绑定,非注册时微信号无法登录该小程序,可重置数据解绑。 22 | 4、如注册后在教务系统修改了密码,使用新密码会登录失败,可重置数据解决。 23 | 5、重置数据会清除你在服务器的一切信息,请谨慎操作。 24 | 5、订阅新成绩消息,一旦教务系统录入新成绩,你可以在移动端上收到微信的推送消息。 25 | 26 | 27 | 28 | 29 | 服务条款 30 | 31 | 32 | 1、由于业务逻辑,不可避免地需要在服务器保存您的学号和教务系统密码等信息,作者郑重承诺决不滥用该信息。 33 | 2、如不放心,可重置数据。 34 | 35 | 36 | 37 | 38 | 39 | 交流反馈 40 | 41 | 42 | 可以通过客服直接联系我,也可进群反馈 43 | QQ群: 44 | 881070220 45 | 46 | 47 | 48 | 49 | 50 | 51 | 赞助作者 52 | 53 | 54 | 用于抵扣服务器开销 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /miniprogram/pages/about/about.wxss: -------------------------------------------------------------------------------- 1 | @import "../../colorui/main.wxss"; 2 | @import "../../colorui/icon.wxss"; 3 | 4 | .place{ 5 | height: 50rpx; 6 | } 7 | .responsor{ 8 | width: 400rpx; 9 | height: 400rpx; 10 | display: flex; 11 | align-items: center; 12 | margin: 0 auto 13 | } -------------------------------------------------------------------------------- /miniprogram/pages/kb/kb.js: -------------------------------------------------------------------------------- 1 | //index.js 2 | //获取应用实例 3 | var app = getApp() 4 | Page({ 5 | data: { 6 | colorArrays: ["#85B8CF", "#90C652", "#D8AA5A", "#FC9F9D", "#0A9A84", "#61BC69", "#12AEF3", "#E29AAD"], 7 | kblist: [ 8 | { "weekday": 1, "start": 1, "occupy": 2, "name": "高等哲学@铁三-404" }, 9 | { "weekday": 1, "start": 3, "occupy": 2, "name": "高等哲学@铁三-404" }, 10 | { "weekday": 1, "start": 7, "occupy": 2, "name": "高等哲学@铁三-404" }, 11 | { "weekday": 2, "start": 1, "occupy": 2, "name": "高等哲学@铁三-404" }, 12 | { "weekday": 2, "start": 5, "occupy": 2, "name": "高等哲学@铁三-404" }, 13 | { "weekday": 2, "start": 7, "occupy": 2, "name": "高等哲学@铁三-404" }, 14 | { "weekday": 3, "start": 1, "occupy": 2, "name": "高等哲学@铁三-404" }, 15 | { "weekday": 4, "start": 1, "occupy": 2, "name": "高等哲学@铁三-404" }, 16 | { "weekday": 4, "start": 3, "occupy": 2, "name": "高等哲学@铁三-404" }, 17 | { "weekday": 4, "start": 5, "occupy": 2, "name": "高等哲学@铁三-404" }, 18 | { "weekday": 4, "start": 7, "occupy": 2, "name": "高等哲学@铁三-404" }, 19 | { "weekday": 5, "start": 7, "occupy": 2, "name": "高等哲学@铁三-404" }, 20 | { "weekday": 6, "start": 1, "occupy": 2, "name": "高等哲学@铁三-404" }, 21 | { "weekday": 6, "start": 3, "occupy": 2, "name": "高等哲学@铁三-404" }, 22 | { "weekday": 6, "start": 5, "occupy": 2, "name": "高等哲学@铁三-404" }, 23 | { "weekday": 6, "start": 7, "occupy": 2, "name": "高等哲学@铁三-404" }, 24 | 25 | { "weekday": 7, "start": 1, "occupy": 2, "name": "高等哲学@铁三404" }, 26 | { "weekday": 7, "start": 7, "occupy": 2, "name": "高等哲学@铁三404" }, 27 | 28 | 29 | 30 | 31 | 32 | ] 33 | }, 34 | onLoad: function () { 35 | console.log('onLoad') 36 | this.queryKB() 37 | }, 38 | 39 | detail:function(e){ 40 | console.log(e) 41 | let that = this 42 | let period = e.currentTarget.dataset.period 43 | let teacher = e.currentTarget.dataset.teacher 44 | wx.showModal({ 45 | title: '课程详情', 46 | content: '任课教师:'+teacher+'\n开课周:'+period, 47 | cancelText: '我看完了', 48 | confirmText: '我也是', 49 | confirmColor: '#7cba23', 50 | success(res) { 51 | if (res.confirm) { 52 | } else if (res.cancel) { 53 | } 54 | } 55 | }) 56 | }, 57 | 58 | queryKB: function(){ 59 | var that = this; 60 | wx.request({ 61 | url: 'https://xt98.tech:987/querytable', 62 | data: { 63 | account: wx.getStorageSync("account"), 64 | }, 65 | method: 'POST', 66 | header: { 67 | 'Content-Type': 'application/json' 68 | }, // 设置请求的 header 69 | success: function (res) { 70 | // success 71 | console.log('ssss', res) 72 | if(res.data.code==1){ 73 | that.setData({ 74 | kblist:res.data.data 75 | }) 76 | } 77 | }, 78 | fail: function () { 79 | console.log('fff') 80 | // fail 81 | }, 82 | complete: function () { 83 | console.log('cccc') 84 | // complete 85 | that.setData({ 86 | isLogining: false 87 | }) 88 | } 89 | }) 90 | } 91 | }) 92 | -------------------------------------------------------------------------------- /miniprogram/pages/kb/kb.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /miniprogram/pages/kb/kb.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 周{{item}} 4 | 5 | 6 | 7 | 8 | 9 | {{item}} 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | {{item.name}}@{{item.classroom}} 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /miniprogram/pages/kb/kb.wxss: -------------------------------------------------------------------------------- 1 | /**index.wxss**/ 2 | 3 | .flex-item { 4 | width: 95rpx; 5 | height: 100px; 6 | } 7 | 8 | .kcb-item { 9 | position: absolute; 10 | justify-content: center; 11 | display: flex; 12 | align-items: center; 13 | border-radius: 5px; 14 | } 15 | 16 | .smalltext { 17 | font-size: 8pt; 18 | color: #fff; 19 | padding-left: 2px; 20 | } 21 | 22 | .top { 23 | display: flex; 24 | flex-direction: row; 25 | margin-left: 55rpx; 26 | background-color: #d2e6b3; 27 | color: #7cba23; 28 | } 29 | 30 | .top-text { 31 | width: 100rpx; 32 | height: 55rpx; 33 | font-size: 9pt; 34 | justify-content: center; 35 | display: flex; 36 | align-items: center; 37 | } 38 | 39 | .scroll { 40 | height: 1170rpx; 41 | z-index: 101; 42 | position: fixed; 43 | } 44 | 45 | .left { 46 | width: 55rpx; 47 | height: 100rpx; 48 | font-size: 9pt; 49 | justify-content: center; 50 | display: flex; 51 | align-items: center; 52 | } 53 | -------------------------------------------------------------------------------- /miniprogram/pages/login/login.js: -------------------------------------------------------------------------------- 1 | Page({ 2 | data: { 3 | inputPassword: false, 4 | account: '', 5 | password: '', 6 | isLogining: false 7 | }, 8 | onLoad: function() { 9 | var that = this; 10 | if (!wx.getStorageSync("openId")) { 11 | wx.cloud.callFunction({ 12 | name: 'getOpenid', 13 | complete: res => { 14 | console.log('云函数获取到的openid: ', res.result.openId) 15 | wx.setStorageSync('openId', res.result.openId); 16 | } 17 | }) 18 | } 19 | let account = wx.getStorageSync("account") 20 | let password = wx.getStorageSync("password") 21 | if(account&&password){ 22 | that.setData({ 23 | account:account, 24 | password:password 25 | }) 26 | } 27 | 28 | 29 | }, 30 | pwdFocus() { 31 | this.setData({ 32 | inputPassword: true 33 | }) 34 | }, 35 | pwdBlur() { 36 | this.setData({ 37 | inputPassword: false 38 | }) 39 | }, 40 | bindAccountInput(e) { 41 | this.setData({ 42 | account: e.detail.value 43 | }) 44 | }, 45 | bindPasswordInput(e) { 46 | this.setData({ 47 | password: e.detail.value 48 | }) 49 | }, 50 | bindIdentity() { 51 | var that = this 52 | that.setData({ 53 | isLogining: true 54 | }) 55 | if (!that.data.account || that.data.account.length < 10) { 56 | that.setData({ 57 | isLogining: false 58 | }) 59 | wx.showToast({ 60 | title: '账号格式不对', 61 | icon: 'loading' 62 | }) 63 | return 64 | } else if (!that.data.password) { 65 | that.setData({ 66 | isLogining: false 67 | }) 68 | wx.showToast({ 69 | title: '请输入密码', 70 | icon: 'loading' 71 | }) 72 | return 73 | } 74 | 75 | wx.request({ 76 | url: 'https://xt98.tech:987/login', 77 | data: { 78 | account: that.data.account, 79 | password: that.data.password, 80 | openId: wx.getStorageSync("openId") 81 | }, 82 | method: 'POST', 83 | header: { 84 | 'Content-Type': 'application/json' 85 | }, // 设置请求的 header 86 | success: function(res) { 87 | // success 88 | console.log('ssss', res) 89 | if(res.data.code==601){ 90 | wx.showToast({ 91 | title: '密码/账号错误', 92 | icon: 'loading' 93 | }) 94 | } 95 | else if (res.data.code == 600) { 96 | wx.setStorageSync('account', that.data.account) 97 | wx.setStorageSync('password', that.data.password) 98 | wx.switchTab({ 99 | url: '../score/score', 100 | }) 101 | } else if (res.data.code == 603) { 102 | wx.showModal({ 103 | title: '温馨提示', 104 | content: '您需要先注册,这将在服务器上保留您的账号密码等信息,确认注册?', 105 | cancelText: '服务条款', 106 | confirmText: '确定注册', 107 | confirmColor: '#7cba23', 108 | success(res) { 109 | if (res.confirm) { 110 | wx.request({ 111 | url: 'https://xt98.tech:987/regist', 112 | data: { 113 | account: that.data.account, 114 | password: that.data.password, 115 | openId: wx.getStorageSync("openId") 116 | }, 117 | method: 'POST', 118 | header: { 119 | 'Content-Type': 'application/json' 120 | }, // 设置请求的 header 121 | success: function (res) { 122 | if (res.data.code == 700) { 123 | wx.setStorageSync('account', that.data.account) 124 | wx.setStorageSync('password', that.data.password) 125 | 126 | wx.switchTab({ 127 | url: '../score/score', 128 | }) 129 | } 130 | } 131 | }) 132 | } else if (res.cancel) { 133 | } 134 | } 135 | }) 136 | // 要先注册 137 | } else if(res.data.code==602){ 138 | wx.showToast({ 139 | title: '密码错误', 140 | icon: 'loading' 141 | }) 142 | }else{ 143 | wx.showToast({ 144 | title: '微信账号错误', 145 | icon: 'loading' 146 | }) 147 | } 148 | }, 149 | fail: function() { 150 | console.log('fff') 151 | // fail 152 | }, 153 | complete: function() { 154 | console.log('cccc') 155 | // complete 156 | that.setData({ 157 | isLogining: false 158 | }) 159 | } 160 | }) 161 | 162 | }, 163 | 164 | reset:function(e){ 165 | console.log(e) 166 | wx.showToast({ 167 | title: '尚未开放该功能', 168 | icon: 'loading' 169 | }) 170 | }, 171 | 172 | answer:function(e){ 173 | wx.navigateTo({ 174 | url: '../about/about', 175 | }) 176 | }, 177 | 178 | onShareAppMessage: function () { 179 | var name = wx.getStorageSync("name") 180 | if(name){ 181 | return { 182 | title: '中南教务通', 183 | desc: name+'邀您一起加入中南教务通!', 184 | } 185 | }else{ 186 | return { 187 | title: '中南教务通', 188 | desc: '邀您一起加入中南教务通!', 189 | } 190 | } 191 | 192 | }, 193 | 194 | onShow: function(){ 195 | 196 | } 197 | 198 | }) -------------------------------------------------------------------------------- /miniprogram/pages/login/login.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarBackgroundColor": "#7cba23", 3 | "navigationBarTextStyle": "black", 4 | "navigationBarTitleText": "", 5 | "backgroundColor": "white", 6 | "backgroundTextStyle": "dark" 7 | } -------------------------------------------------------------------------------- /miniprogram/pages/login/login.wxml: -------------------------------------------------------------------------------- 1 | 2 | 中南教务通 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 重置数据 28 | 遇到问题 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /miniprogram/pages/login/login.wxss: -------------------------------------------------------------------------------- 1 | .wrapper { 2 | width: 100%; 3 | height: 640rpx; 4 | background-color: #7cba23; 5 | position: absolute; 6 | } 7 | 8 | .loginform { 9 | height: 500rpx; 10 | position: relative; 11 | top: 280rpx; 12 | } 13 | 14 | #owl-login { 15 | width: 500rpx; 16 | height: 200rpx; 17 | position: absolute; 18 | top: -182rpx; 19 | left: 50%; 20 | margin-left: -200rpx; 21 | } 22 | 23 | .head { 24 | width: 400rpx; 25 | height: 200rpx; 26 | } 27 | 28 | .hand { 29 | width: 68rpx; 30 | height: 68rpx; 31 | border-radius: 80rpx; 32 | background-color: #472d20; 33 | transform: scaleY(0.6); 34 | transition: 0.3s ease-out; 35 | position: absolute; 36 | left: 25rpx; 37 | bottom: -16rpx; 38 | } 39 | 40 | .hand-r { 41 | left: 315rpx; 42 | } 43 | 44 | .arms { 45 | top: 120rpx; 46 | position: absolute; 47 | width: 100%; 48 | height: 80rpx; 49 | overflow: hidden; 50 | } 51 | 52 | .arm { 53 | width: 80rpx; 54 | height: 130rpx; 55 | position: absolute; 56 | left: 40rpx; 57 | top: 80rpx; 58 | transition: 0.3s ease-out; 59 | transform: rotate(-20deg); 60 | } 61 | 62 | .arm-r { 63 | transform: rotate(20deg) scaleX(-1); 64 | left: 290rpx; 65 | } 66 | 67 | .hand-password { 68 | transform: translateX(95rpx) translateY(-30rpx) scale(0.7); 69 | } 70 | 71 | .hand-r-password { 72 | transform: translateX(-90rpx) translateY(-30rpx) scale(0.7); 73 | } 74 | 75 | .arm-password { 76 | transform: translateY(-80rpx) translateX(80rpx); 77 | } 78 | 79 | .arm-r-password { 80 | transform: translateY(-80rpx) translateX(-72rpx) scaleX(-1); 81 | } 82 | 83 | .control-group { 84 | width: 700rpx; 85 | height: 460rpx; 86 | margin: 0 auto; 87 | padding: 20rpx; 88 | background-color: white; 89 | border-radius: 10rpx; 90 | box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); 91 | /* border: 1px solid red; */ 92 | } 93 | 94 | .control { 95 | width: 650rpx; 96 | height: 100rpx; 97 | margin: 20rpx auto; 98 | border: 1px solid #f1f1f1; 99 | border-radius: 10rpx; 100 | } 101 | .control input{ 102 | height: 100rpx; 103 | line-height: 100rpx; 104 | padding-left: 20rpx; 105 | font-size: 36rpx; 106 | } 107 | 108 | .title { 109 | color: #ffffff; 110 | font-size: 64rpx; 111 | margin-top: 60rpx; 112 | display: flex; 113 | align-items: center; 114 | justify-content: center; 115 | } 116 | 117 | 118 | .bottom{ 119 | height: 60rpx; 120 | line-height: 60rpx; 121 | font-size: 33rpx; 122 | /* border: 1px solid red; */ 123 | } 124 | .bottom text{ 125 | display: block; 126 | margin-top: 25rpx; 127 | width: 50%; 128 | } 129 | 130 | .bottom text:first-child{ 131 | float: left; 132 | color: #7cba23; 133 | } 134 | .bottom text:last-child{ 135 | float: right; 136 | color: #7cba23; 137 | text-align: right; 138 | } 139 | 140 | .bg-green{ 141 | margin-top: 25rpx; 142 | background: #7cba23; 143 | color: #ffffff; 144 | } -------------------------------------------------------------------------------- /miniprogram/pages/more/more.js: -------------------------------------------------------------------------------- 1 | // miniprogram/pages/more/more.js 2 | Page({ 3 | 4 | /** 5 | * 页面的初始数据 6 | */ 7 | data: { 8 | 9 | }, 10 | 11 | /** 12 | * 生命周期函数--监听页面加载 13 | */ 14 | onLoad: function (options) { 15 | 16 | }, 17 | 18 | /** 19 | * 生命周期函数--监听页面初次渲染完成 20 | */ 21 | onReady: function () { 22 | 23 | }, 24 | 25 | /** 26 | * 生命周期函数--监听页面显示 27 | */ 28 | onShow: function () { 29 | 30 | }, 31 | 32 | /** 33 | * 生命周期函数--监听页面隐藏 34 | */ 35 | onHide: function () { 36 | 37 | }, 38 | 39 | /** 40 | * 生命周期函数--监听页面卸载 41 | */ 42 | onUnload: function () { 43 | 44 | }, 45 | 46 | /** 47 | * 页面相关事件处理函数--监听用户下拉动作 48 | */ 49 | onPullDownRefresh: function () { 50 | 51 | }, 52 | 53 | /** 54 | * 页面上拉触底事件的处理函数 55 | */ 56 | onReachBottom: function () { 57 | 58 | }, 59 | 60 | /** 61 | * 用户点击右上角分享 62 | */ 63 | onShareAppMessage: function () { 64 | 65 | }, 66 | 67 | goAbout: function (e) { 68 | wx.navigateTo({ 69 | url: '../about/about', 70 | }) 71 | }, 72 | 73 | goUpdate: function (e) { 74 | wx.navigateTo({ 75 | url: '../updateinfo/updateinfo', 76 | }) 77 | }, 78 | 79 | /****长按保存图片 */ 80 | saveImg: function (e) { 81 | console.log(e.currentTarget.dataset.src) 82 | var src = e.currentTarget.dataset.src; 83 | let that = this 84 | wx.getSetting({ 85 | success(res) { 86 | //未授权 先授权 然后保存 87 | if (!res.authSetting['scope.writePhotosAlbum']) { 88 | wx.authorize({ 89 | scope: 'scope.writePhotosAlbum', 90 | success(re) { 91 | that.saveToBlum(src); 92 | } 93 | }) 94 | } else { 95 | //已授 直接调用保存到相册方法 96 | that.saveToBlum(src); 97 | } 98 | } 99 | }) 100 | }, 101 | 102 | //保存到相册方法 103 | saveToBlum: function (src) { 104 | let imgUrl = src; 105 | wx.getImageInfo({ 106 | src: imgUrl, 107 | success: function (ret) { 108 | var path = ret.path; 109 | wx.saveImageToPhotosAlbum({ 110 | filePath: path, 111 | success(result) { 112 | wx.showToast({ 113 | title: '保存成功', 114 | icon: 'success' 115 | }) 116 | }, 117 | }) 118 | } 119 | }) 120 | }, 121 | 122 | exit: function(){ 123 | wx.redirectTo({ 124 | url: '../login/login', 125 | }) 126 | } 127 | }) -------------------------------------------------------------------------------- /miniprogram/pages/more/more.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /miniprogram/pages/more/more.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 长按可保存 6 | 7 | 8 | 9 | 10 | 关于 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 更新日志 20 | 21 | 22 | 23 | 24 | 25 | 26 | 退出登录 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /miniprogram/pages/more/more.wxss: -------------------------------------------------------------------------------- 1 | @import "../../colorui/main.wxss"; 2 | @import "../../colorui/icon.wxss"; 3 | 4 | .mt20 { 5 | margin-top: 20rpx; 6 | } 7 | 8 | .mod-a { 9 | padding: 0 20rpx; 10 | border: 1px solid #f0f0f0; 11 | background-color: #fff; 12 | } 13 | 14 | .mod { 15 | display: flex; 16 | flex-direction: row; 17 | justify-content: space-between; 18 | align-items: center; 19 | height: 90rpx; 20 | padding: 0 20rpx; 21 | } 22 | 23 | .arrow-r { 24 | width: 9rpx; 25 | height: 17rpx; 26 | margin-left: 10rpx; 27 | } 28 | 29 | .score-page { 30 | display: flex; 31 | flex-direction: column; 32 | font-size: 32rpx; 33 | color: #676767; 34 | padding: 30rpx 0; 35 | } 36 | 37 | .logo { 38 | width: 300rpx; 39 | height: 300rpx; 40 | display: flex; 41 | align-items: center; 42 | justify-content: center; 43 | margin: 0 auto; 44 | } 45 | 46 | .logotext { 47 | width: 200rpx; 48 | height: 60rpx; 49 | display: flex; 50 | align-items: center; 51 | justify-content: center; 52 | margin: 0 auto; 53 | } 54 | 55 | top { 56 | padding-bottom: 10px; 57 | padding-top: 10px; 58 | margin-bottom: 30px; 59 | background-color: #fff; 60 | } 61 | 62 | button { 63 | margin: 0; 64 | border: 0; 65 | background-color: transparent; 66 | outline: none; 67 | font-size: 32rpx; 68 | padding-bottom: 5rpx; 69 | padding-top: 5rpx; 70 | color: #7cba23; 71 | } 72 | 73 | .mod-b { 74 | border: 1px solid #f0f0f0; 75 | background-color: #fff; 76 | } 77 | 78 | .mt40{ 79 | margin-top: 40px; 80 | } 81 | -------------------------------------------------------------------------------- /miniprogram/pages/score/score.js: -------------------------------------------------------------------------------- 1 | 2 | Page({ 3 | data: { 4 | openId: '', 5 | name: '赵子龙', 6 | totalCredit: 145, 7 | average: 99, 8 | rank: 1, 9 | isSubed: 0, 10 | noNotice:true, 11 | notice_content: '跑马灯跑马灯跑马灯跑马灯跑马灯跑马灯跑马灯跑马灯跑马灯', 12 | recommand: '暂无推荐' 13 | 14 | }, 15 | 16 | changeSwitch: function (e) { 17 | var that = this 18 | var isSubed = 1 19 | if(e.detail.value==false){ 20 | isSubed = 0 21 | } 22 | that.setData({ 23 | isSubed:isSubed 24 | }) 25 | console.log(e.detail.value, that.data.isSubed) 26 | wx.request({ 27 | url: 'https://xt98.tech:987/changesub', 28 | data: { 29 | account: wx.getStorageSync("account"), 30 | isSubed: isSubed 31 | }, 32 | method: 'POST', 33 | header: { 34 | 'Content-Type': 'application/json' 35 | }, // 设置请求的 header 36 | success: function (res) { 37 | // success 38 | console.log('ssss', res) 39 | 40 | }, 41 | fail: function () { 42 | console.log('fff') 43 | // fail 44 | }, 45 | complete: function () { 46 | console.log('cccc') 47 | // complete 48 | that.setData({ 49 | isLogining: false 50 | }) 51 | } 52 | }) 53 | }, 54 | 55 | 56 | queryUserinfo: function () { 57 | var that = this 58 | wx.request({ 59 | url: 'https://xt98.tech:987/queryuserinfo', 60 | data: { 61 | openId: wx.getStorageSync("openId") 62 | }, 63 | method: 'POST', 64 | header: { 65 | 'Content-Type': 'application/json' 66 | }, // 设置请求的 header 67 | success: function (res) { 68 | // success 69 | console.log('ssss', res) 70 | if (res.data.code == 800) { 71 | that.queryRecommand() 72 | that.setData({ 73 | name: res.data.data.name, 74 | totalCredit: res.data.data.totalCredit, 75 | average: res.data.data.average, 76 | rank: res.data.data.rank, 77 | isSubed: res.data.data.isSubed 78 | }) 79 | wx.setStorageSync("name", res.data.data.name) 80 | } 81 | 82 | }, 83 | fail: function () { 84 | console.log('fff') 85 | // fail 86 | }, 87 | complete: function () { 88 | console.log('cccc') 89 | // complete 90 | that.setData({ 91 | isLogining: false 92 | }) 93 | } 94 | }) 95 | }, 96 | 97 | queryNotice: function () { 98 | var that = this 99 | wx.request({ 100 | url: 'https://xt98.tech:987/getnotice', 101 | 102 | method: 'POST', 103 | header: { 104 | 'Content-Type': 'application/json' 105 | }, // 设置请求的 header 106 | success: function (res) { 107 | // success 108 | console.log('ssss', res) 109 | if (res.data.code == 1) { 110 | that.setData({ 111 | noNotice: false, 112 | notice_content: res.data.content, 113 | }) 114 | } 115 | 116 | }, 117 | fail: function () { 118 | console.log('fff') 119 | // fail 120 | }, 121 | complete: function () { 122 | console.log('cccc') 123 | // complete 124 | that.setData({ 125 | isLogining: false 126 | }) 127 | } 128 | }) 129 | }, 130 | 131 | queryRecommand: function () { 132 | var that = this 133 | wx.request({ 134 | url: 'https://xt98.tech:987/getrecommand', 135 | 136 | method: 'POST', 137 | header: { 138 | 'Content-Type': 'application/json' 139 | }, // 设置请求的 header 140 | success: function (res) { 141 | // success 142 | console.log('ssss', res) 143 | if (res.data.code == 1) { 144 | that.queryNotice() 145 | that.setData({ 146 | recommand: res.data.content, 147 | }) 148 | } 149 | 150 | }, 151 | fail: function () { 152 | console.log('fff') 153 | // fail 154 | }, 155 | complete: function () { 156 | console.log('cccc') 157 | // complete 158 | that.setData({ 159 | isLogining: false 160 | }) 161 | } 162 | }) 163 | }, 164 | 165 | onShow: function () { 166 | 167 | }, 168 | 169 | onHide: function () { 170 | }, 171 | 172 | scoreList: function (e) { 173 | wx.navigateTo({ 174 | url: '../scoreList/scoreList', 175 | }) 176 | }, 177 | 178 | onLoad: function () { 179 | 180 | this.queryUserinfo() 181 | 182 | } 183 | 184 | }) -------------------------------------------------------------------------------- /miniprogram/pages/score/score.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /miniprogram/pages/score/score.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{notice_content}} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 每日推荐 14 | 15 | 16 |   {{recommand}}\n 17 | 18 | 19 | 20 | 21 | 22 | 欢迎您! {{name}} 23 | 24 | 25 | 26 | 订阅新成绩消息 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 获得学分 35 | {{totalCredit}} 36 | 37 | 38 | 39 | 40 | 平均分 41 | {{average}} 42 | 43 | 44 | 45 | 专业排名 46 | {{rank}} 47 | 48 | 49 | 50 | 所有成绩 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /miniprogram/pages/score/score.wxss: -------------------------------------------------------------------------------- 1 | @import "../../colorui/main.wxss"; 2 | @import "../../colorui/icon.wxss"; 3 | .mt20{ 4 | margin-top: 20px; 5 | } 6 | 7 | .daliy{ 8 | color: #7cba23; 9 | } 10 | 11 | .score-page{ 12 | display: flex; 13 | flex-direction: column; 14 | font-size: 32rpx; 15 | color: #676767; 16 | } 17 | 18 | .mod-a{ 19 | padding: 0 20rpx; 20 | border: 1px solid #f0f0f0; 21 | background-color: #fff; 22 | } 23 | 24 | .mod{ 25 | display: flex; 26 | flex-direction: row; 27 | justify-content: space-between; 28 | align-items: center; 29 | height: 90rpx; 30 | padding: 0 20rpx; 31 | } 32 | 33 | .arrow-r{ 34 | width: 9rpx; 35 | height: 17rpx; 36 | margin-left: 10rpx; 37 | } 38 | 39 | /*首页跑马灯效果*/ 40 | @keyframes around { 41 | from { 42 | margin-left: 100%; 43 | } 44 | to { 45 | /* var接受传入的变量 */ 46 | margin-left: var(--marqueeWidth--); 47 | } 48 | } 49 | 50 | .marquee_container{ 51 | background-color: #ffffff; 52 | height: 50rpx; 53 | line-height: 44rpx; 54 | position: relative; 55 | width: 100%; 56 | margin-top:0rpx; 57 | } 58 | .marquee_container:hover{ 59 | /* 不起作用 */ 60 | animation-play-state: paused; 61 | } 62 | .announcement-text{ 63 | color:#7cba23; 64 | font-size: 28rpx; 65 | display: inline-block; 66 | white-space: nowrap; 67 | animation-name: around; 68 | animation-duration: 15s; /*过渡时间*/ 69 | animation-iteration-count: infinite; 70 | animation-timing-function:linear; 71 | } 72 | /*首页跑马灯效果*/ 73 | 74 | .contain{ 75 | position: relative; 76 | width: 670rpx; 77 | height: 50rpx; 78 | line-height: 50rpx; 79 | background:rgba(253,253,253,1); 80 | margin: 20rpx auto 0; 81 | z-index: 10; 82 | font-size: 30rpx; 83 | overflow:auto; 84 | box-shadow:0px 0px 7rpx 0px rgba(83,152,95,0.18); 85 | border-radius:10rpx; 86 | } 87 | .contain image{ 88 | display: inline-block; 89 | width: 30rpx; 90 | height: 30rpx; 91 | margin: 9rpx 25rpx; 92 | } 93 | .contain .xian{ 94 | width: 2rpx; 95 | height: 36rpx; 96 | background: rgba(135,135,135,0.5); 97 | position: absolute; 98 | left: 80rpx; 99 | top:7rpx; 100 | } 101 | .contain .notice{ 102 | position: absolute; 103 | z-index: 11; 104 | width: 538rpx; 105 | margin-left: 82rpx; 106 | padding: 0 25rpx; 107 | height: 36rpx; 108 | line-height: 36rpx; 109 | top: 7rpx; 110 | font-size: 26rpx; 111 | color: #888888; 112 | overflow: hidden; 113 | } -------------------------------------------------------------------------------- /miniprogram/pages/scoreList/scoreList.js: -------------------------------------------------------------------------------- 1 | // miniprogram/pages/scoreList/scoreList.js 2 | Page({ 3 | 4 | /** 5 | * 页面的初始数据 6 | */ 7 | data: { 8 | floorstatus: false 9 | }, 10 | 11 | /** 12 | * 生命周期函数--监听页面加载 13 | */ 14 | onLoad: function(options) { 15 | this.queryScoreList() 16 | }, 17 | 18 | /** 19 | * 生命周期函数--监听页面初次渲染完成 20 | */ 21 | onReady: function() { 22 | 23 | }, 24 | 25 | queryScoreList: function() { 26 | var that = this 27 | wx.request({ 28 | url: 'https://xt98.tech:987/queryscorelist', 29 | data: { 30 | account: wx.getStorageSync("account"), 31 | password: wx.getStorageSync("password") 32 | }, 33 | method: 'POST', 34 | header: { 35 | 'Content-Type': 'application/json' 36 | }, // 设置请求的 header 37 | success: function(res) { 38 | // success 39 | console.log('ssss', res) 40 | if (res.data.code == 900) { 41 | that.setData({ 42 | scoreList: res.data.data, 43 | }) 44 | } 45 | 46 | }, 47 | fail: function() { 48 | console.log('fff') 49 | // fail 50 | }, 51 | complete: function() { 52 | console.log('cccc') 53 | // complete 54 | that.setData({ 55 | isLogining: false 56 | }) 57 | } 58 | }) 59 | }, 60 | 61 | /** 62 | * 生命周期函数--监听页面显示 63 | */ 64 | onShow: function() { 65 | 66 | }, 67 | 68 | /** 69 | * 生命周期函数--监听页面隐藏 70 | */ 71 | onHide: function() { 72 | 73 | }, 74 | 75 | /** 76 | * 生命周期函数--监听页面卸载 77 | */ 78 | onUnload: function() { 79 | 80 | }, 81 | 82 | /** 83 | * 页面相关事件处理函数--监听用户下拉动作 84 | */ 85 | onPullDownRefresh: function() { 86 | 87 | }, 88 | 89 | // 获取滚动条当前位置 90 | onPageScroll: function (e) { 91 | console.log(e) 92 | if (e.scrollTop > 100) { 93 | this.setData({ 94 | floorstatus: true 95 | }); 96 | } else { 97 | this.setData({ 98 | floorstatus: false 99 | }); 100 | } 101 | }, 102 | 103 | //回到顶部 104 | goTop: function (e) { // 一键回到顶部 105 | if (wx.pageScrollTo) { 106 | wx.pageScrollTo({ 107 | scrollTop: 0 108 | }) 109 | } else { 110 | wx.showModal({ 111 | title: '提示', 112 | content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' 113 | }) 114 | } 115 | }, 116 | 117 | /** 118 | * 页面上拉触底事件的处理函数 119 | */ 120 | onReachBottom: function() { 121 | 122 | }, 123 | 124 | /** 125 | * 用户点击右上角分享 126 | */ 127 | onShareAppMessage: function() { 128 | 129 | } 130 | }) -------------------------------------------------------------------------------- /miniprogram/pages/scoreList/scoreList.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /miniprogram/pages/scoreList/scoreList.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 课程 4 | 学分 5 | 成绩 6 | 7 | 8 | 9 | 10 | 11 | {{item.courseName}} 12 | {{item.credit}} 13 | {{item.grade}} 14 | 15 | 16 | 17 | {{item.courseName}} 18 | {{item.credit}} 19 | {{item.grade}} 20 | 21 | 22 | 23 | 24 | 我也是有底线的~ 25 | 26 | -------------------------------------------------------------------------------- /miniprogram/pages/scoreList/scoreList.wxss: -------------------------------------------------------------------------------- 1 | .table { 2 | border: 0px solid darkgray; 3 | } 4 | 5 | .tr { 6 | display: flex; 7 | width: 100%; 8 | justify-content: center; 9 | align-items: center; 10 | } 11 | 12 | .f { 13 | width: 70%; 14 | height: 45px; 15 | padding-left: 5px; 16 | justify-content: center; 17 | text-align: center; 18 | display: flex; 19 | align-items: center; 20 | } 21 | 22 | .s { 23 | width: 15%; 24 | height: 45px; 25 | justify-content: center; 26 | text-align: center; 27 | display: flex; 28 | align-items: center; 29 | } 30 | 31 | .t { 32 | width: 15%; 33 | height: 45px; 34 | justify-content: center; 35 | text-align: center; 36 | display: flex; 37 | align-items: center; 38 | } 39 | 40 | .bg-l { 41 | background: snow; 42 | } 43 | 44 | .bg-d { 45 | background: #d2e6b3; 46 | } 47 | 48 | .th1 { 49 | width: 70%; 50 | justify-content: center; 51 | background: #7cba23; 52 | color: #fff; 53 | display: flex; 54 | height: 3rem; 55 | align-items: center; 56 | } 57 | 58 | .th2 { 59 | width: 15%; 60 | justify-content: center; 61 | background: #7cba23; 62 | color: #fff; 63 | display: flex; 64 | height: 3rem; 65 | align-items: center; 66 | } 67 | 68 | .th3 { 69 | width: 15%; 70 | justify-content: center; 71 | background: #7cba23; 72 | color: #fff; 73 | display: flex; 74 | height: 3rem; 75 | align-items: center; 76 | } 77 | 78 | .bottom { 79 | display: flex; 80 | margin-top: 20px; 81 | font-size: 48rpx; 82 | color: #7cba23; 83 | align-items: center; 84 | justify-content: center; 85 | } 86 | 87 | /* 返回顶部 */ 88 | .goTop{ 89 | height: 90rpx; 90 | width: 90rpx; 91 | position: fixed; 92 | bottom: 70rpx; 93 | background: rgba(0,0,0,.3); 94 | right: 50rpx; 95 | border-radius: 50%; 96 | } 97 | -------------------------------------------------------------------------------- /miniprogram/pages/updateinfo/updateinfo.js: -------------------------------------------------------------------------------- 1 | // pages/users/about/about.js 2 | Page({ 3 | 4 | /** 5 | * 页面的初始数据 6 | */ 7 | data: { 8 | 9 | }, 10 | 11 | /** 12 | * 生命周期函数--监听页面加载 13 | */ 14 | onLoad: function (options) { 15 | }, 16 | copy(e) { 17 | wx.setClipboardData({ 18 | data: e.currentTarget.dataset.copy, 19 | success: res => { 20 | wx.showToast({ 21 | title: '已复制', 22 | duration: 1000, 23 | }) 24 | } 25 | }) 26 | }, 27 | /** 28 | * 生命周期函数--监听页面初次渲染完成 29 | */ 30 | onReady: function () { 31 | 32 | }, 33 | 34 | /****长按保存图片 */ 35 | saveImg: function (e) { 36 | console.log(e.currentTarget.dataset.src) 37 | var src = e.currentTarget.dataset.src; 38 | let that = this 39 | wx.getSetting({ 40 | success(res) { 41 | //未授权 先授权 然后保存 42 | if (!res.authSetting['scope.writePhotosAlbum']) { 43 | wx.authorize({ 44 | scope: 'scope.writePhotosAlbum', 45 | success(re) { 46 | that.saveToBlum(src); 47 | } 48 | }) 49 | } else { 50 | //已授 直接调用保存到相册方法 51 | that.saveToBlum(src); 52 | } 53 | } 54 | }) 55 | }, 56 | 57 | //保存到相册方法 58 | saveToBlum: function (src) { 59 | let imgUrl = src; 60 | wx.getImageInfo({ 61 | src: imgUrl, 62 | success: function (ret) { 63 | var path = ret.path; 64 | wx.saveImageToPhotosAlbum({ 65 | filePath: path, 66 | success(result) { 67 | wx.showToast({ 68 | title: '保存成功', 69 | icon: 'success' 70 | }) 71 | }, 72 | }) 73 | } 74 | }) 75 | }, 76 | 77 | /** 78 | * 生命周期函数--监听页面显示 79 | */ 80 | onShow: function () { 81 | 82 | }, 83 | 84 | /** 85 | * 生命周期函数--监听页面隐藏 86 | */ 87 | onHide: function () { 88 | 89 | }, 90 | 91 | /** 92 | * 生命周期函数--监听页面卸载 93 | */ 94 | onUnload: function () { 95 | 96 | }, 97 | 98 | /** 99 | * 页面相关事件处理函数--监听用户下拉动作 100 | */ 101 | onPullDownRefresh: function () { 102 | 103 | }, 104 | 105 | /** 106 | * 页面上拉触底事件的处理函数 107 | */ 108 | onReachBottom: function () { 109 | 110 | }, 111 | 112 | /** 113 | * 用户点击右上角分享 114 | */ 115 | onShareAppMessage: function () { 116 | return { 117 | title: '扫码考勤记', 118 | desc: '邀请好友,一起打卡!', 119 | } 120 | } 121 | }) -------------------------------------------------------------------------------- /miniprogram/pages/updateinfo/updateinfo.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } -------------------------------------------------------------------------------- /miniprogram/pages/updateinfo/updateinfo.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 2019/10/16更新 6 | 7 | 8 | 1、第一版完成,本地调试通过,主要支持查看成绩和课表。 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 2019/10/18更新 17 | 18 | 19 | 1、小程序审核通过,正式上线。 20 | -------------------------------------------------------------------------------- /miniprogram/pages/updateinfo/updateinfo.wxss: -------------------------------------------------------------------------------- 1 | @import "../../colorui/main.wxss"; 2 | @import "../../colorui/icon.wxss"; 3 | .logo{ 4 | width: 300rpx; 5 | height: 300rpx; 6 | display: flex; 7 | align-items: center; 8 | margin: 0 auto 9 | } 10 | .place{ 11 | height: 50rpx; 12 | } 13 | .responsor{ 14 | width: 400rpx; 15 | height: 400rpx; 16 | display: flex; 17 | align-items: center; 18 | margin: 0 auto 19 | } 20 | 21 | .logotext{ 22 | width: 200rpx; 23 | height: 60rpx; 24 | display: flex; 25 | align-items: center; 26 | margin: 0 auto 27 | } 28 | 29 | .margin-sm{ 30 | border-radius: 15px; 31 | } -------------------------------------------------------------------------------- /miniprogram/project.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "项目配置文件", 3 | "packOptions": { 4 | "ignore": [] 5 | }, 6 | "setting": { 7 | "urlCheck": true, 8 | "es6": true, 9 | "postcss": true, 10 | "minified": true, 11 | "newFeature": true, 12 | "autoAudits": false 13 | }, 14 | "compileType": "miniprogram", 15 | "libVersion": "2.0.3", 16 | "appid": "wx922c7da0f577cf85", 17 | "projectname": "%E4%B8%AD%E5%8D%97%E8%AF%BE%E7%A8%8B%E8%A1%A8", 18 | "debugOptions": { 19 | "hidedInDevtools": [] 20 | }, 21 | "isGameTourist": false, 22 | "simulatorType": "wechat", 23 | "simulatorPluginLibVersion": {}, 24 | "condition": { 25 | "search": { 26 | "current": -1, 27 | "list": [] 28 | }, 29 | "conversation": { 30 | "current": -1, 31 | "list": [] 32 | }, 33 | "game": { 34 | "currentL": -1, 35 | "list": [] 36 | }, 37 | "miniprogram": { 38 | "current": -1, 39 | "list": [] 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /miniprogram/sitemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", 3 | "rules": [{ 4 | "action": "allow", 5 | "page": "*" 6 | }] 7 | } -------------------------------------------------------------------------------- /miniprogram/utils/util.js: -------------------------------------------------------------------------------- 1 | function formatTime(date) { 2 | var year = date.getFullYear() 3 | var month = date.getMonth() + 1 4 | var day = date.getDate() 5 | 6 | var hour = date.getHours() 7 | var minute = date.getMinutes() 8 | var second = date.getSeconds() 9 | 10 | 11 | return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') 12 | } 13 | 14 | function formatNumber(n) { 15 | n = n.toString() 16 | return n[1] ? n : '0' + n 17 | } 18 | 19 | module.exports = { 20 | formatTime: formatTime 21 | } 22 | -------------------------------------------------------------------------------- /project.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "项目配置文件", 3 | "packOptions": { 4 | "ignore": [] 5 | }, 6 | "setting": { 7 | "urlCheck": true, 8 | "es6": true, 9 | "postcss": true, 10 | "minified": true, 11 | "newFeature": true, 12 | "coverView": true, 13 | "autoAudits": false, 14 | "checkInvalidKey": true, 15 | "checkSiteMap": true, 16 | "uploadWithSourceMap": true, 17 | "babelSetting": { 18 | "ignore": [], 19 | "disablePlugins": [], 20 | "outputPath": "" 21 | } 22 | }, 23 | "compileType": "miniprogram", 24 | "libVersion": "2.8.3", 25 | "appid": "wx922c7da0f577cf85", 26 | "projectname": "%E4%B8%AD%E5%8D%97%E6%95%99%E5%8A%A1%E9%80%9A", 27 | "miniprogramRoot": "miniprogram/", 28 | "cloudfunctionRoot": "cloudfunctions/", 29 | "debugOptions": { 30 | "hidedInDevtools": [] 31 | }, 32 | "scripts": {}, 33 | "simulatorType": "wechat", 34 | "simulatorPluginLibVersion": {}, 35 | "condition": { 36 | "search": { 37 | "current": -1, 38 | "list": [] 39 | }, 40 | "conversation": { 41 | "current": -1, 42 | "list": [] 43 | }, 44 | "plugin": { 45 | "current": -1, 46 | "list": [] 47 | }, 48 | "game": { 49 | "list": [] 50 | }, 51 | "miniprogram": { 52 | "current": -1, 53 | "list": [] 54 | } 55 | } 56 | } --------------------------------------------------------------------------------