Commit a655eff241dfd509831276829804cbe2bccda982

Authored by vking
2 parents 0fa2a88a 6b341723

blue ui

Too many changes to show.

To preserve performance only 22 of 22+ files are displayed.

@@ -132,16 +132,12 @@ @@ -132,16 +132,12 @@
132 "text": "订座" 132 "text": "订座"
133 }, 133 },
134 { 134 {
135 - "pagePath": "pages/me/follow",  
136 - "text": "关注" 135 + "pagePath": "pages/reserve/search",
  136 + "text": "查找"
137 }, 137 },
138 { 138 {
139 - "pagePath": "pages/customer/list",  
140 - "text": "日程"  
141 - },  
142 - {  
143 - "pagePath": "pages/me/index",  
144 - "text": "我的" 139 + "pagePath": "pages/me/list",
  140 + "text": "订单"
145 } 141 }
146 ] 142 ]
147 }, 143 },
  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 +}
  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: #FF7A00;
  18 + --yellow: #FFC9AA;
  19 + --olive: #8dc63f;
  20 + --green: #39b54a;
  21 + --cyan: #1cbbb4;
  22 + --blue: #42A5FF;
  23 + --purple: #6739b6;
  24 + --mauve: #9c26b0;
  25 + --pink: #e03997;
  26 + --brown: #a5673f;
  27 + --grey: #8799a3;
  28 + --black: #333333;
  29 + --darkGray: #666666;
  30 + --gray: #999999;
  31 + --ghostWhite: #f2f2f2;
  32 + --white: #ffffff;
  33 + /* 浅色 */
  34 + --redLight: #fadbd9;
  35 + --orangeLight: #fde6d2;
  36 + --yellowLight: #fef2ce;
  37 + --oliveLight: #e8f4d9;
  38 + --greenLight: #d7f0db;
  39 + --cyanLight: #d2f1f0;
  40 + --blueLight: #E6F3FF;
  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 + background-size: 100% 100%;
  87 +}
  88 +
  89 +.round {
  90 + border-radius: 5000rpx;
  91 +}
  92 +
  93 +.radius {
  94 + border-radius: 20rpx;
  95 +}
  96 +
  97 +/* ==================
  98 + 图片
  99 + ==================== */
  100 +
  101 +image {
  102 + max-width: 100%;
  103 + display: inline-block;
  104 + position: relative;
  105 + z-index: 0;
  106 +}
  107 +
  108 +image.loading::before {
  109 + content: "";
  110 + background-color: #f5f5f5;
  111 + display: block;
  112 + position: absolute;
  113 + width: 100%;
  114 + height: 100%;
  115 + z-index: -2;
  116 +}
  117 +
  118 +image.loading::after {
  119 + content: "\e7f1";
  120 + font-family: "cuIcon";
  121 + position: absolute;
  122 + top: 0;
  123 + left: 0;
  124 + width: 32rpx;
  125 + height: 32rpx;
  126 + line-height: 32rpx;
  127 + right: 0;
  128 + bottom: 0;
  129 + z-index: -1;
  130 + font-size: 32rpx;
  131 + margin: auto;
  132 + color: #ccc;
  133 + -webkit-animation: cuIcon-spin 2s infinite linear;
  134 + animation: cuIcon-spin 2s infinite linear;
  135 + display: block;
  136 +}
  137 +
  138 +.response {
  139 + width: 100%;
  140 +}
  141 +
  142 +/* ==================
  143 + 开关
  144 + ==================== */
  145 +
  146 +switch,
  147 +checkbox,
  148 +radio {
  149 + position: relative;
  150 +}
  151 +
  152 +switch::after,
  153 +switch::before {
  154 + font-family: "cuIcon";
  155 + content: "\e645";
  156 + position: absolute;
  157 + color: var(--white) !important;
  158 + top: 0%;
  159 + left: 0rpx;
  160 + font-size: 26rpx;
  161 + line-height: 26px;
  162 + width: 50%;
  163 + text-align: center;
  164 + pointer-events: none;
  165 + transform: scale(0, 0);
  166 + transition: all 0.3s ease-in-out 0s;
  167 + z-index: 9;
  168 + bottom: 0;
  169 + height: 26px;
  170 + margin: auto;
  171 +}
  172 +
  173 +switch::before {
  174 + content: "\e646";
  175 + right: 0;
  176 + transform: scale(1, 1);
  177 + left: auto;
  178 +}
  179 +
  180 +switch[checked]::after,
  181 +switch.checked::after {
  182 + transform: scale(1, 1);
  183 +}
  184 +
  185 +switch[checked]::before,
  186 +switch.checked::before {
  187 + transform: scale(0, 0);
  188 +}
  189 +
  190 +switch[checked]::before {
  191 + transform: scale(0, 0);
  192 +}
  193 +
  194 +radio::before,
  195 +checkbox::before {
  196 + font-family: "cuIcon";
  197 + content: "\e645";
  198 + position: absolute;
  199 + color: var(--white) !important;
  200 + top: 50%;
  201 + margin-top: -8px;
  202 + right: 5px;
  203 + font-size: 32rpx;
  204 + line-height: 16px;
  205 + pointer-events: none;
  206 + transform: scale(1, 1);
  207 + transition: all 0.3s ease-in-out 0s;
  208 + z-index: 9;
  209 +}
  210 +
  211 +radio .wx-radio-input,
  212 +checkbox .wx-checkbox-input {
  213 + margin: 0;
  214 + width: 24px;
  215 + height: 24px;
  216 +}
  217 +
  218 +checkbox.round .wx-checkbox-input {
  219 + border-radius: 100rpx;
  220 +}
  221 +
  222 +switch .wx-switch-input {
  223 + border: none;
  224 + padding: 0 24px;
  225 + width: 48px;
  226 + height: 26px;
  227 + margin: 0;
  228 + border-radius: 100rpx;
  229 +}
  230 +
  231 +switch .wx-switch-input:not([class*="bg-"]) {
  232 + background: var(--grey) !important;
  233 +}
  234 +
  235 +switch .wx-switch-input::after {
  236 + margin: auto;
  237 + width: 26px;
  238 + height: 26px;
  239 + border-radius: 100rpx;
  240 + left: 0rpx;
  241 + top: 0rpx;
  242 + bottom: 0rpx;
  243 + position: absolute;
  244 + transform: scale(0.9, 0.9);
  245 + transition: all 0.1s ease-in-out 0s;
  246 +}
  247 +
  248 +switch .wx-switch-input.wx-switch-input-checked::after {
  249 + margin: auto;
  250 + left: 22px;
  251 + box-shadow: none;
  252 + transform: scale(0.9, 0.9);
  253 +}
  254 +
  255 +radio-group {
  256 + display: inline-block;
  257 +}
  258 +
  259 +
  260 +
  261 +switch.radius .wx-switch-input::after,
  262 +switch.radius .wx-switch-input,
  263 +switch.radius .wx-switch-input::before {
  264 + border-radius: 10rpx;
  265 +}
  266 +
  267 +switch .wx-switch-input::before,
  268 +radio.radio::before,
  269 +checkbox .wx-checkbox-input::before,
  270 +radio .wx-radio-input::before,
  271 +radio.radio::before {
  272 + display: none;
  273 +}
  274 +
  275 +radio.radio[checked]::after {
  276 + content: "";
  277 + background-color: transparent;
  278 + display: block;
  279 + position: absolute;
  280 + width: 8px;
  281 + height: 8px;
  282 + z-index: 999;
  283 + top: 0rpx;
  284 + left: 0rpx;
  285 + right: 0;
  286 + bottom: 0;
  287 + margin: auto;
  288 + border-radius: 200rpx;
  289 + border: 8px solid var(--white) !important;
  290 +}
  291 +
  292 +.switch-sex::after {
  293 + content: "\e71c";
  294 +}
  295 +
  296 +.switch-sex::before {
  297 + content: "\e71a";
  298 +}
  299 +
  300 +.switch-sex .wx-switch-input {
  301 + background: var(--red) !important;
  302 + border-color: var(--red) !important;
  303 +}
  304 +
  305 +.switch-sex[checked] .wx-switch-input {
  306 + background: var(--blue) !important;
  307 + border-color: var(--blue) !important;
  308 +}
  309 +
  310 +.switch-user::after {
  311 + content: "\e7f5";
  312 +}
  313 +
  314 +.switch-user::before {
  315 + content: "\e78c";
  316 +}
  317 +
  318 +.switch-user .wx-switch-input {
  319 + background-color: var(--red) !important;
  320 + border-color: var(--red) !important;
  321 +}
  322 +
  323 +.switch-user[checked] .wx-switch-input {
  324 + background-color: var(--blue) !important;
  325 + border-color: var(--blue) !important;
  326 +}
  327 +
  328 +switch.red[checked] .wx-switch-input,
  329 +checkbox.red[checked] .wx-checkbox-input,
  330 +radio.red[checked] .wx-radio-input {
  331 + border-color: var(--red) !important;
  332 +}
  333 +
  334 +switch.orange[checked] .wx-switch-input,
  335 +checkbox.orange[checked] .wx-checkbox-input,
  336 +radio.orange[checked] .wx-radio-input {
  337 + border-color: var(--orange) !important;
  338 +}
  339 +
  340 +switch.yellow[checked] .wx-switch-input,
  341 +checkbox.yellow[checked] .wx-checkbox-input,
  342 +radio.yellow[checked] .wx-radio-input {
  343 + border-color: var(--yellow) !important;
  344 +}
  345 +
  346 +switch.olive[checked] .wx-switch-input,
  347 +checkbox.olive[checked] .wx-checkbox-input,
  348 +radio.olive[checked] .wx-radio-input {
  349 + border-color: var(--olive) !important;
  350 +}
  351 +
  352 +switch.green[checked] .wx-switch-input,
  353 +checkbox.green[checked] .wx-checkbox-input,
  354 +checkbox[checked] .wx-checkbox-input,
  355 +radio.green[checked] .wx-radio-input {
  356 + border-color: var(--green) !important;
  357 +}
  358 +
  359 +switch.cyan[checked] .wx-switch-input,
  360 +checkbox.cyan[checked] .wx-checkbox-input,
  361 +radio.cyan[checked] .wx-radio-input {
  362 + border-color: var(--cyan) !important;
  363 +}
  364 +
  365 +switch.blue[checked] .wx-switch-input,
  366 +checkbox.blue[checked] .wx-checkbox-input,
  367 +radio.blue[checked] .wx-radio-input {
  368 + border-color: var(--blue) !important;
  369 +}
  370 +
  371 +switch.purple[checked] .wx-switch-input,
  372 +checkbox.purple[checked] .wx-checkbox-input,
  373 +radio.purple[checked] .wx-radio-input {
  374 + border-color: var(--purple) !important;
  375 +}
  376 +
  377 +switch.mauve[checked] .wx-switch-input,
  378 +checkbox.mauve[checked] .wx-checkbox-input,
  379 +radio.mauve[checked] .wx-radio-input {
  380 + border-color: var(--mauve) !important;
  381 +}
  382 +
  383 +switch.pink[checked] .wx-switch-input,
  384 +checkbox.pink[checked] .wx-checkbox-input,
  385 +radio.pink[checked] .wx-radio-input {
  386 + border-color: var(--pink) !important;
  387 +}
  388 +
  389 +switch.brown[checked] .wx-switch-input,
  390 +checkbox.brown[checked] .wx-checkbox-input,
  391 +radio.brown[checked] .wx-radio-input {
  392 + border-color: var(--brown) !important;
  393 +}
  394 +
  395 +switch.grey[checked] .wx-switch-input,
  396 +checkbox.grey[checked] .wx-checkbox-input,
  397 +radio.grey[checked] .wx-radio-input {
  398 + border-color: var(--grey) !important;
  399 +}
  400 +
  401 +switch.gray[checked] .wx-switch-input,
  402 +checkbox.gray[checked] .wx-checkbox-input,
  403 +radio.gray[checked] .wx-radio-input {
  404 + border-color: var(--grey) !important;
  405 +}
  406 +
  407 +switch.black[checked] .wx-switch-input,
  408 +checkbox.black[checked] .wx-checkbox-input,
  409 +radio.black[checked] .wx-radio-input {
  410 + border-color: var(--black) !important;
  411 +}
  412 +
  413 +switch.white[checked] .wx-switch-input,
  414 +checkbox.white[checked] .wx-checkbox-input,
  415 +radio.white[checked] .wx-radio-input {
  416 + border-color: var(--white) !important;
  417 +}
  418 +
  419 +switch.red[checked] .wx-switch-input.wx-switch-input-checked,
  420 +checkbox.red[checked] .wx-checkbox-input,
  421 +radio.red[checked] .wx-radio-input {
  422 + background-color: var(--red) !important;
  423 + color: var(--white) !important;
  424 +}
  425 +
  426 +switch.orange[checked] .wx-switch-input,
  427 +checkbox.orange[checked] .wx-checkbox-input,
  428 +radio.orange[checked] .wx-radio-input {
  429 + background-color: var(--orange) !important;
  430 + color: var(--white) !important;
  431 +}
  432 +
  433 +switch.yellow[checked] .wx-switch-input,
  434 +checkbox.yellow[checked] .wx-checkbox-input,
  435 +radio.yellow[checked] .wx-radio-input {
  436 + background-color: var(--yellow) !important;
  437 + color: var(--black) !important;
  438 +}
  439 +
  440 +switch.olive[checked] .wx-switch-input,
  441 +checkbox.olive[checked] .wx-checkbox-input,
  442 +radio.olive[checked] .wx-radio-input {
  443 + background-color: var(--olive) !important;
  444 + color: var(--white) !important;
  445 +}
  446 +
  447 +switch.green[checked] .wx-switch-input,
  448 +switch[checked] .wx-switch-input,
  449 +checkbox.green[checked] .wx-checkbox-input,
  450 +checkbox[checked] .wx-checkbox-input,
  451 +radio.green[checked] .wx-radio-input,
  452 +radio[checked] .wx-radio-input {
  453 + background-color: var(--green) !important;
  454 + color: var(--white) !important;
  455 +}
  456 +
  457 +switch.cyan[checked] .wx-switch-input,
  458 +checkbox.cyan[checked] .wx-checkbox-input,
  459 +radio.cyan[checked] .wx-radio-input {
  460 + background-color: var(--cyan) !important;
  461 + color: var(--white) !important;
  462 +}
  463 +
  464 +switch.blue[checked] .wx-switch-input,
  465 +checkbox.blue[checked] .wx-checkbox-input,
  466 +radio.blue[checked] .wx-radio-input {
  467 + background-color: var(--blue) !important;
  468 + color: var(--white) !important;
  469 +}
  470 +
  471 +switch.purple[checked] .wx-switch-input,
  472 +checkbox.purple[checked] .wx-checkbox-input,
  473 +radio.purple[checked] .wx-radio-input {
  474 + background-color: var(--purple) !important;
  475 + color: var(--white) !important;
  476 +}
  477 +
  478 +switch.mauve[checked] .wx-switch-input,
  479 +checkbox.mauve[checked] .wx-checkbox-input,
  480 +radio.mauve[checked] .wx-radio-input {
  481 + background-color: var(--mauve) !important;
  482 + color: var(--white) !important;
  483 +}
  484 +
  485 +switch.pink[checked] .wx-switch-input,
  486 +checkbox.pink[checked] .wx-checkbox-input,
  487 +radio.pink[checked] .wx-radio-input {
  488 + background-color: var(--pink) !important;
  489 + color: var(--white) !important;
  490 +}
  491 +
  492 +switch.brown[checked] .wx-switch-input,
  493 +checkbox.brown[checked] .wx-checkbox-input,
  494 +radio.brown[checked] .wx-radio-input {
  495 + background-color: var(--brown) !important;
  496 + color: var(--white) !important;
  497 +}
  498 +
  499 +switch.grey[checked] .wx-switch-input,
  500 +checkbox.grey[checked] .wx-checkbox-input,
  501 +radio.grey[checked] .wx-radio-input {
  502 + background-color: var(--grey) !important;
  503 + color: var(--white) !important;
  504 +}
  505 +
  506 +switch.gray[checked] .wx-switch-input,
  507 +checkbox.gray[checked] .wx-checkbox-input,
  508 +radio.gray[checked] .wx-radio-input {
  509 + background-color: #f0f0f0 !important;
  510 + color: var(--black) !important;
  511 +}
  512 +
  513 +switch.black[checked] .wx-switch-input,
  514 +checkbox.black[checked] .wx-checkbox-input,
  515 +radio.black[checked] .wx-radio-input {
  516 + background-color: var(--black) !important;
  517 + color: var(--white) !important;
  518 +}
  519 +
  520 +switch.white[checked] .wx-switch-input,
  521 +checkbox.white[checked] .wx-checkbox-input,
  522 +radio.white[checked] .wx-radio-input {
  523 + background-color: var(--white) !important;
  524 + color: var(--black) !important;
  525 +}
  526 +
  527 +/* ==================
  528 + 边框
  529 + ==================== */
  530 +
  531 +/* -- 实线 -- */
  532 +
  533 +.solid,
  534 +.solid-top,
  535 +.solid-right,
  536 +.solid-bottom,
  537 +.solid-left,
  538 +.solids,
  539 +.solids-top,
  540 +.solids-right,
  541 +.solids-bottom,
  542 +.solids-left,
  543 +.dashed,
  544 +.dashed-top,
  545 +.dashed-right,
  546 +.dashed-bottom,
  547 +.dashed-left {
  548 + position: relative;
  549 +}
  550 +
  551 +.solid::after,
  552 +.solid-top::after,
  553 +.solid-right::after,
  554 +.solid-bottom::after,
  555 +.solid-left::after,
  556 +.solids::after,
  557 +.solids-top::after,
  558 +.solids-right::after,
  559 +.solids-bottom::after,
  560 +.solids-left::after,
  561 +.dashed::after,
  562 +.dashed-top::after,
  563 +.dashed-right::after,
  564 +.dashed-bottom::after,
  565 +.dashed-left::after {
  566 + content: " ";
  567 + width: 200%;
  568 + height: 200%;
  569 + position: absolute;
  570 + top: 0;
  571 + left: 0;
  572 + border-radius: inherit;
  573 + transform: scale(0.5);
  574 + transform-origin: 0 0;
  575 + pointer-events: none;
  576 + box-sizing: border-box;
  577 +}
  578 +
  579 +.solid::after {
  580 + border: 1rpx solid rgba(0, 0, 0, 0.1);
  581 +}
  582 +
  583 +.solid-top::after {
  584 + border-top: 1rpx solid rgba(0, 0, 0, 0.1);
  585 +}
  586 +
  587 +.solid-right::after {
  588 + border-right: 1rpx solid rgba(0, 0, 0, 0.1);
  589 +}
  590 +
  591 +.solid-bottom::after {
  592 + border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
  593 +}
  594 +
  595 +.solid-left::after {
  596 + border-left: 1rpx solid rgba(0, 0, 0, 0.1);
  597 +}
  598 +
  599 +.solids::after {
  600 + border: 8rpx solid #eee;
  601 +}
  602 +
  603 +.solids-top::after {
  604 + border-top: 8rpx solid #eee;
  605 +}
  606 +
  607 +.solids-right::after {
  608 + border-right: 8rpx solid #eee;
  609 +}
  610 +
  611 +.solids-bottom::after {
  612 + border-bottom: 8rpx solid #eee;
  613 +}
  614 +
  615 +.solids-left::after {
  616 + border-left: 8rpx solid #eee;
  617 +}
  618 +
  619 +/* -- 虚线 -- */
  620 +
  621 +.dashed::after {
  622 + border: 1rpx dashed #ddd;
  623 +}
  624 +
  625 +.dashed-top::after {
  626 + border-top: 1rpx dashed #ddd;
  627 +}
  628 +
  629 +.dashed-right::after {
  630 + border-right: 1rpx dashed #ddd;
  631 +}
  632 +
  633 +.dashed-bottom::after {
  634 + border-bottom: 1rpx dashed #ddd;
  635 +}
  636 +
  637 +.dashed-left::after {
  638 + border-left: 1rpx dashed #ddd;
  639 +}
  640 +
  641 +/* -- 阴影 -- */
  642 +
  643 +.shadow[class*='white'] {
  644 + --ShadowSize: 0 1rpx 6rpx;
  645 +}
  646 +
  647 +.shadow-lg {
  648 + --ShadowSize: 0rpx 40rpx 100rpx 0rpx;
  649 +}
  650 +
  651 +.shadow-warp {
  652 + position: relative;
  653 + box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.1);
  654 +}
  655 +
  656 +.shadow-warp:before,
  657 +.shadow-warp:after {
  658 + position: absolute;
  659 + content: "";
  660 + top: 20rpx;
  661 + bottom: 30rpx;
  662 + left: 20rpx;
  663 + width: 50%;
  664 + box-shadow: 0 30rpx 20rpx rgba(0, 0, 0, 0.2);
  665 + transform: rotate(-3deg);
  666 + z-index: -1;
  667 +}
  668 +
  669 +.shadow-warp:after {
  670 + right: 20rpx;
  671 + left: auto;
  672 + transform: rotate(3deg);
  673 +}
  674 +
  675 +.shadow-blur {
  676 + position: relative;
  677 +}
  678 +
  679 +.shadow-blur::before {
  680 + content: "";
  681 + display: block;
  682 + background: inherit;
  683 + filter: blur(10rpx);
  684 + position: absolute;
  685 + width: 100%;
  686 + height: 100%;
  687 + top: 10rpx;
  688 + left: 10rpx;
  689 + z-index: -1;
  690 + opacity: 0.4;
  691 + transform-origin: 0 0;
  692 + border-radius: inherit;
  693 + transform: scale(1, 1);
  694 +}
  695 +
  696 +/* ==================
  697 + 按钮
  698 + ==================== */
  699 +
  700 +.cu-btn {
  701 + position: relative;
  702 + border: 0rpx;
  703 + display: inline-flex;
  704 + align-items: center;
  705 + justify-content: center;
  706 + box-sizing: border-box;
  707 + padding: 0 30rpx;
  708 + font-size: 28rpx;
  709 + height: 64rpx;
  710 + line-height: 1;
  711 + text-align: center;
  712 + text-decoration: none;
  713 + overflow: visible;
  714 + margin-left: initial;
  715 + transform: translate(0rpx, 0rpx);
  716 + margin-right: initial;
  717 +}
  718 +
  719 +.cu-btn::after {
  720 + display: none;
  721 +}
  722 +
  723 +.cu-btn:not([class*="bg-"]) {
  724 + background-color: #f0f0f0;
  725 +}
  726 +
  727 +.cu-btn[class*="line"] {
  728 + background-color: transparent;
  729 +}
  730 +
  731 +.cu-btn[class*="line"]::after {
  732 + content: " ";
  733 + display: block;
  734 + width: 200%;
  735 + height: 200%;
  736 + position: absolute;
  737 + top: 0;
  738 + left: 0;
  739 + border: 1rpx solid currentColor;
  740 + transform: scale(0.5);
  741 + transform-origin: 0 0;
  742 + box-sizing: border-box;
  743 + border-radius: 12rpx;
  744 + z-index: 1;
  745 + pointer-events: none;
  746 +}
  747 +
  748 +.cu-btn.round[class*="line"]::after {
  749 + border-radius: 1000rpx;
  750 +}
  751 +
  752 +.cu-btn[class*="lines"]::after {
  753 + border: 6rpx solid currentColor;
  754 +}
  755 +
  756 +.cu-btn[class*="bg-"]::after {
  757 + display: none;
  758 +}
  759 +
  760 +.cu-btn.sm {
  761 + padding: 0 20rpx;
  762 + font-size: 20rpx;
  763 + height: 48rpx;
  764 +}
  765 +
  766 +.cu-btn.lg {
  767 + padding: 0 40rpx;
  768 + font-size: 32rpx;
  769 + height: 80rpx;
  770 +}
  771 +
  772 +.cu-btn.icon.sm {
  773 + width: 48rpx;
  774 + height: 48rpx;
  775 +}
  776 +
  777 +.cu-btn.icon {
  778 + width: 64rpx;
  779 + height: 64rpx;
  780 + border-radius: 500rpx;
  781 + padding: 0;
  782 +}
  783 +
  784 +button.icon.lg {
  785 + width: 80rpx;
  786 + height: 80rpx;
  787 +}
  788 +
  789 +.cu-btn.shadow-blur::before {
  790 + top: 4rpx;
  791 + left: 4rpx;
  792 + filter: blur(6rpx);
  793 + opacity: 0.6;
  794 +}
  795 +
  796 +.cu-btn.button-hover {
  797 + transform: translate(1rpx, 1rpx);
  798 +}
  799 +
  800 +.block {
  801 + display: block;
  802 +}
  803 +
  804 +.cu-btn.block {
  805 + display: flex;
  806 +}
  807 +
  808 +.cu-btn[disabled] {
  809 + opacity: 0.6;
  810 + color: var(--white);
  811 +}
  812 +
  813 +/* ==================
  814 + 徽章
  815 + ==================== */
  816 +
  817 +.cu-tag {
  818 + font-size: 24rpx;
  819 + vertical-align: middle;
  820 + position: relative;
  821 + display: inline-flex;
  822 + align-items: center;
  823 + justify-content: center;
  824 + box-sizing: border-box;
  825 + padding: 0rpx 16rpx;
  826 + height: 48rpx;
  827 + font-family: Helvetica Neue, Helvetica, sans-serif;
  828 + white-space: nowrap;
  829 +}
  830 +
  831 +.cu-tag:not([class*="bg"]):not([class*="line"]) {
  832 + background-color: var(--ghostWhite);
  833 +}
  834 +
  835 +.cu-tag[class*="line-"]::after {
  836 + content: " ";
  837 + width: 200%;
  838 + height: 200%;
  839 + position: absolute;
  840 + top: 0;
  841 + left: 0;
  842 + border: 2rpx solid currentColor;
  843 + transform: scale(0.5);
  844 + transform-origin: 0 0;
  845 + box-sizing: border-box;
  846 + border-radius: inherit;
  847 + z-index: 1;
  848 + pointer-events: none;
  849 +}
  850 +
  851 +.cu-tag.radius[class*="line"]::after {
  852 + border-radius: 12rpx;
  853 +}
  854 +
  855 +.cu-tag.round[class*="line"]::after {
  856 + border-radius: 1000rpx;
  857 +}
  858 +
  859 +.cu-tag[class*="line-"]::after {
  860 + border-radius: 0;
  861 +}
  862 +
  863 +.cu-tag+.cu-tag {
  864 + margin-left: 10rpx;
  865 +}
  866 +
  867 +.cu-tag.sm {
  868 + font-size: 20rpx;
  869 + padding: 0rpx 12rpx;
  870 + height: 32rpx;
  871 +}
  872 +
  873 +.cu-capsule {
  874 + display: inline-flex;
  875 + vertical-align: middle;
  876 +}
  877 +
  878 +.cu-capsule+.cu-capsule {
  879 + margin-left: 10rpx;
  880 +}
  881 +
  882 +.cu-capsule .cu-tag {
  883 + margin: 0;
  884 +}
  885 +
  886 +.cu-capsule .cu-tag[class*="line-"]:last-child::after {
  887 + border-left: 0rpx solid transparent;
  888 +}
  889 +
  890 +.cu-capsule .cu-tag[class*="line-"]:first-child::after {
  891 + border-right: 0rpx solid transparent;
  892 +}
  893 +
  894 +.cu-capsule.radius .cu-tag:first-child {
  895 + border-top-left-radius: 6rpx;
  896 + border-bottom-left-radius: 6rpx;
  897 +}
  898 +
  899 +.cu-capsule.radius .cu-tag:last-child::after,
  900 +.cu-capsule.radius .cu-tag[class*="line-"] {
  901 + border-top-right-radius: 12rpx;
  902 + border-bottom-right-radius: 12rpx;
  903 +}
  904 +
  905 +.cu-capsule.round .cu-tag:first-child {
  906 + border-top-left-radius: 200rpx;
  907 + border-bottom-left-radius: 200rpx;
  908 + text-indent: 4rpx;
  909 +}
  910 +
  911 +.cu-capsule.round .cu-tag:last-child::after,
  912 +.cu-capsule.round .cu-tag:last-child {
  913 + border-top-right-radius: 200rpx;
  914 + border-bottom-right-radius: 200rpx;
  915 + text-indent: -4rpx;
  916 +}
  917 +
  918 +.cu-tag.badge {
  919 + border-radius: 200rpx;
  920 + position: absolute;
  921 + top: -10rpx;
  922 + right: -10rpx;
  923 + font-size: 20rpx;
  924 + padding: 0rpx 10rpx;
  925 + height: 28rpx;
  926 + color: var(--white);
  927 +}
  928 +
  929 +.cu-tag.badge:not([class*="bg-"]) {
  930 + background-color: #dd514c;
  931 +}
  932 +
  933 +.cu-tag:empty:not([class*="cuIcon-"]) {
  934 + padding: 0rpx;
  935 + width: 16rpx;
  936 + height: 16rpx;
  937 + top: -4rpx;
  938 + right: -4rpx;
  939 +}
  940 +
  941 +.cu-tag[class*="cuIcon-"] {
  942 + width: 32rpx;
  943 + height: 32rpx;
  944 + top: -4rpx;
  945 + right: -4rpx;
  946 +}
  947 +
  948 +/* ==================
  949 + 头像
  950 + ==================== */
  951 +
  952 +.cu-avatar {
  953 + font-variant: small-caps;
  954 + margin: 0;
  955 + padding: 0;
  956 + display: inline-flex;
  957 + text-align: center;
  958 + justify-content: center;
  959 + align-items: center;
  960 + background-color: #ccc;
  961 + color: var(--white);
  962 + white-space: nowrap;
  963 + position: relative;
  964 + width: 64rpx;
  965 + height: 64rpx;
  966 + background-size: cover;
  967 + background-position: center;
  968 + vertical-align: middle;
  969 + font-size: 1.5em;
  970 +}
  971 +
  972 +.cu-avatar.sm {
  973 + width: 48rpx;
  974 + height: 48rpx;
  975 + font-size: 1em;
  976 +}
  977 +
  978 +.cu-avatar.lg {
  979 + width: 96rpx;
  980 + height: 96rpx;
  981 + font-size: 2em;
  982 +}
  983 +
  984 +.cu-avatar.xl {
  985 + width: 128rpx;
  986 + height: 128rpx;
  987 + font-size: 2.5em;
  988 +}
  989 +
  990 +.cu-avatar .avatar-text {
  991 + font-size: 0.4em;
  992 +}
  993 +
  994 +.cu-avatar-group {
  995 + direction: rtl;
  996 + unicode-bidi: bidi-override;
  997 + padding: 0 10rpx 0 40rpx;
  998 + display: inline-block;
  999 +}
  1000 +
  1001 +.cu-avatar-group .cu-avatar {
  1002 + margin-left: -30rpx;
  1003 + border: 4rpx solid var(--ghostWhite);
  1004 + vertical-align: middle;
  1005 +}
  1006 +
  1007 +.cu-avatar-group .cu-avatar.sm {
  1008 + margin-left: -20rpx;
  1009 + border: 1rpx solid var(--ghostWhite);
  1010 +}
  1011 +
  1012 +/* ==================
  1013 + 进度条
  1014 + ==================== */
  1015 +
  1016 +.cu-progress {
  1017 + overflow: hidden;
  1018 + height: 28rpx;
  1019 + background-color: #ebeef5;
  1020 + display: inline-flex;
  1021 + align-items: center;
  1022 + width: 100%;
  1023 +}
  1024 +
  1025 +.cu-progress+view,
  1026 +.cu-progress+text {
  1027 + line-height: 1;
  1028 +}
  1029 +
  1030 +.cu-progress.xs {
  1031 + height: 10rpx;
  1032 +}
  1033 +
  1034 +.cu-progress.sm {
  1035 + height: 20rpx;
  1036 +}
  1037 +
  1038 +.cu-progress view {
  1039 + width: 0;
  1040 + height: 100%;
  1041 + align-items: center;
  1042 + display: flex;
  1043 + justify-items: flex-end;
  1044 + justify-content: space-around;
  1045 + font-size: 20rpx;
  1046 + color: var(--white);
  1047 + transition: width 0.6s ease;
  1048 +}
  1049 +
  1050 +.cu-progress text {
  1051 + align-items: center;
  1052 + display: flex;
  1053 + font-size: 20rpx;
  1054 + color: var(--black);
  1055 + text-indent: 10rpx;
  1056 +}
  1057 +
  1058 +.cu-progress.text-progress {
  1059 + padding-right: 60rpx;
  1060 +}
  1061 +
  1062 +.cu-progress.striped view {
  1063 + 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);
  1064 + background-size: 72rpx 72rpx;
  1065 +}
  1066 +
  1067 +.cu-progress.active view {
  1068 + animation: progress-stripes 2s linear infinite;
  1069 +}
  1070 +
  1071 +@keyframes progress-stripes {
  1072 + from {
  1073 + background-position: 72rpx 0;
  1074 + }
  1075 +
  1076 + to {
  1077 + background-position: 0 0;
  1078 + }
  1079 +}
  1080 +
  1081 +/* ==================
  1082 + 加载
  1083 + ==================== */
  1084 +
  1085 +.cu-load {
  1086 + display: block;
  1087 + line-height: 3em;
  1088 + text-align: center;
  1089 +}
  1090 +
  1091 +.cu-load::before {
  1092 + font-family: "cuIcon";
  1093 + display: inline-block;
  1094 + margin-right: 6rpx;
  1095 +}
  1096 +
  1097 +.cu-load.loading::before {
  1098 + content: "\e67a";
  1099 + animation: cuIcon-spin 2s infinite linear;
  1100 +}
  1101 +
  1102 +.cu-load.loading::after {
  1103 + content: "加载中...";
  1104 +}
  1105 +
  1106 +.cu-load.over::before {
  1107 + content: "\e64a";
  1108 +}
  1109 +
  1110 +.cu-load.over::after {
  1111 + content: "没有更多了";
  1112 +}
  1113 +
  1114 +.cu-load.erro::before {
  1115 + content: "\e658";
  1116 +}
  1117 +
  1118 +.cu-load.erro::after {
  1119 + content: "加载失败";
  1120 +}
  1121 +
  1122 +.cu-load.load-icon::before {
  1123 + font-size: 32rpx;
  1124 +}
  1125 +
  1126 +.cu-load.load-icon::after {
  1127 + display: none;
  1128 +}
  1129 +
  1130 +.cu-load.load-icon.over {
  1131 + display: none;
  1132 +}
  1133 +
  1134 +.cu-load.load-modal {
  1135 + position: fixed;
  1136 + top: 0;
  1137 + right: 0;
  1138 + bottom: 140rpx;
  1139 + left: 0;
  1140 + margin: auto;
  1141 + width: 260rpx;
  1142 + height: 260rpx;
  1143 + background-color: var(--white);
  1144 + border-radius: 10rpx;
  1145 + box-shadow: 0 0 0rpx 2000rpx rgba(0, 0, 0, 0.5);
  1146 + display: flex;
  1147 + align-items: center;
  1148 + flex-direction: column;
  1149 + justify-content: center;
  1150 + font-size: 28rpx;
  1151 + z-index: 9999;
  1152 + line-height: 2.4em;
  1153 +}
  1154 +
  1155 +.cu-load.load-modal [class*="cuIcon-"] {
  1156 + font-size: 60rpx;
  1157 +}
  1158 +
  1159 +.cu-load.load-modal image {
  1160 + width: 70rpx;
  1161 + height: 70rpx;
  1162 +}
  1163 +
  1164 +.cu-load.load-modal::after {
  1165 + content: "";
  1166 + position: absolute;
  1167 + background-color: var(--white);
  1168 + border-radius: 50%;
  1169 + width: 200rpx;
  1170 + height: 200rpx;
  1171 + font-size: 10px;
  1172 + border-top: 6rpx solid rgba(0, 0, 0, 0.05);
  1173 + border-right: 6rpx solid rgba(0, 0, 0, 0.05);
  1174 + border-bottom: 6rpx solid rgba(0, 0, 0, 0.05);
  1175 + border-left: 6rpx solid var(--orange);
  1176 + animation: cuIcon-spin 1s infinite linear;
  1177 + z-index: -1;
  1178 +}
  1179 +
  1180 +.load-progress {
  1181 + pointer-events: none;
  1182 + top: 0;
  1183 + position: fixed;
  1184 + width: 100%;
  1185 + left: 0;
  1186 + z-index: 2000;
  1187 +}
  1188 +
  1189 +.load-progress.hide {
  1190 + display: none;
  1191 +}
  1192 +
  1193 +.load-progress .load-progress-bar {
  1194 + position: relative;
  1195 + width: 100%;
  1196 + height: 4rpx;
  1197 + overflow: hidden;
  1198 + transition: all 200ms ease 0s;
  1199 +}
  1200 +
  1201 +.load-progress .load-progress-spinner {
  1202 + position: absolute;
  1203 + top: 10rpx;
  1204 + right: 10rpx;
  1205 + z-index: 2000;
  1206 + display: block;
  1207 +}
  1208 +
  1209 +.load-progress .load-progress-spinner::after {
  1210 + content: "";
  1211 + display: block;
  1212 + width: 24rpx;
  1213 + height: 24rpx;
  1214 + -webkit-box-sizing: border-box;
  1215 + box-sizing: border-box;
  1216 + border: solid 4rpx transparent;
  1217 + border-top-color: inherit;
  1218 + border-left-color: inherit;
  1219 + border-radius: 50%;
  1220 + -webkit-animation: load-progress-spinner 0.4s linear infinite;
  1221 + animation: load-progress-spinner 0.4s linear infinite;
  1222 +}
  1223 +
  1224 +@-webkit-keyframes load-progress-spinner {
  1225 + 0% {
  1226 + -webkit-transform: rotate(0);
  1227 + transform: rotate(0);
  1228 + }
  1229 +
  1230 + 100% {
  1231 + -webkit-transform: rotate(360deg);
  1232 + transform: rotate(360deg);
  1233 + }
  1234 +}
  1235 +
  1236 +@keyframes load-progress-spinner {
  1237 + 0% {
  1238 + -webkit-transform: rotate(0);
  1239 + transform: rotate(0);
  1240 + }
  1241 +
  1242 + 100% {
  1243 + -webkit-transform: rotate(360deg);
  1244 + transform: rotate(360deg);
  1245 + }
  1246 +}
  1247 +
  1248 +/* ==================
  1249 + 列表
  1250 + ==================== */
  1251 +.grayscale {
  1252 + filter: grayscale(1);
  1253 +}
  1254 +
  1255 +.cu-list+.cu-list {
  1256 + margin-top: 30rpx
  1257 +}
  1258 +
  1259 +.cu-list>.cu-item {
  1260 + transition: all .6s ease-in-out 0s;
  1261 + transform: translateX(0rpx)
  1262 +}
  1263 +
  1264 +.cu-list>.cu-item.move-cur {
  1265 + transform: translateX(-260rpx)
  1266 +}
  1267 +
  1268 +.cu-list>.cu-item .move {
  1269 + position: absolute;
  1270 + right: 0;
  1271 + display: flex;
  1272 + width: 260rpx;
  1273 + height: 100%;
  1274 + transform: translateX(100%)
  1275 +}
  1276 +
  1277 +.cu-list>.cu-item .move view {
  1278 + display: flex;
  1279 + flex: 1;
  1280 + justify-content: center;
  1281 + align-items: center
  1282 +}
  1283 +
  1284 +.cu-list.menu-avatar {
  1285 + overflow: hidden;
  1286 +}
  1287 +
  1288 +.cu-list.menu-avatar>.cu-item {
  1289 + position: relative;
  1290 + display: flex;
  1291 + padding-right: 10rpx;
  1292 + height: 140rpx;
  1293 + background-color: var(--white);
  1294 + justify-content: flex-end;
  1295 + align-items: center
  1296 +}
  1297 +
  1298 +.cu-list.menu-avatar>.cu-item>.cu-avatar {
  1299 + position: absolute;
  1300 + left: 30rpx
  1301 +}
  1302 +
  1303 +.cu-list.menu-avatar>.cu-item .flex .text-cut {
  1304 + max-width: 510rpx
  1305 +}
  1306 +
  1307 +.cu-list.menu-avatar>.cu-item .content {
  1308 + position: absolute;
  1309 + left: 146rpx;
  1310 + width: calc(100% - 96rpx - 60rpx - 120rpx - 20rpx);
  1311 + line-height: 1.6em;
  1312 +}
  1313 +
  1314 +.cu-list.menu-avatar>.cu-item .content.flex-sub {
  1315 + width: calc(100% - 96rpx - 60rpx - 20rpx);
  1316 +}
  1317 +
  1318 +.cu-list.menu-avatar>.cu-item .content>view:first-child {
  1319 + font-size: 30rpx;
  1320 + display: flex;
  1321 + align-items: center
  1322 +}
  1323 +
  1324 +.cu-list.menu-avatar>.cu-item .content .cu-tag.sm {
  1325 + display: inline-block;
  1326 + margin-left: 10rpx;
  1327 + height: 28rpx;
  1328 + font-size: 16rpx;
  1329 + line-height: 32rpx
  1330 +}
  1331 +
  1332 +.cu-list.menu-avatar>.cu-item .action {
  1333 + width: 100rpx;
  1334 + text-align: center
  1335 +}
  1336 +
  1337 +.cu-list.menu-avatar>.cu-item .action view+view {
  1338 + margin-top: 10rpx
  1339 +}
  1340 +
  1341 +.cu-list.menu-avatar.comment>.cu-item .content {
  1342 + position: relative;
  1343 + left: 0;
  1344 + width: auto;
  1345 + flex: 1;
  1346 +}
  1347 +
  1348 +.cu-list.menu-avatar.comment>.cu-item {
  1349 + padding: 30rpx 30rpx 30rpx 120rpx;
  1350 + height: auto
  1351 +}
  1352 +
  1353 +.cu-list.menu-avatar.comment .cu-avatar {
  1354 + align-self: flex-start
  1355 +}
  1356 +
  1357 +.cu-list.menu>.cu-item {
  1358 + position: relative;
  1359 + display: flex;
  1360 + padding: 0 30rpx;
  1361 + min-height: 100rpx;
  1362 + background-color: var(--white);
  1363 + justify-content: space-between;
  1364 + align-items: center
  1365 +}
  1366 +
  1367 +.cu-list.menu>.cu-item:last-child:after {
  1368 + border: none
  1369 +}
  1370 +
  1371 +.cu-list.menu>.cu-item:after {
  1372 + position: absolute;
  1373 + top: 0;
  1374 + left: 0;
  1375 + box-sizing: border-box;
  1376 + width: 200%;
  1377 + height: 200%;
  1378 + border-bottom: 1rpx solid #ddd;
  1379 + border-radius: inherit;
  1380 + content: " ";
  1381 + transform: scale(.5);
  1382 + transform-origin: 0 0;
  1383 + pointer-events: none
  1384 +}
  1385 +
  1386 +.cu-list.menu>.cu-item.grayscale {
  1387 + background-color: #f5f5f5
  1388 +}
  1389 +
  1390 +.cu-list.menu>.cu-item.cur {
  1391 + background-color: #fcf7e9
  1392 +}
  1393 +
  1394 +.cu-list.menu>.cu-item.arrow {
  1395 + padding-right: 90rpx
  1396 +}
  1397 +
  1398 +.cu-list.menu>.cu-item.arrow:before {
  1399 + position: absolute;
  1400 + top: 0;
  1401 + right: 30rpx;
  1402 + bottom: 0;
  1403 + display: block;
  1404 + margin: auto;
  1405 + width: 30rpx;
  1406 + height: 30rpx;
  1407 + color: var(--grey);
  1408 + content: "\e6a3";
  1409 + text-align: center;
  1410 + font-size: 34rpx;
  1411 + font-family: "cuIcon";
  1412 + line-height: 30rpx
  1413 +}
  1414 +
  1415 +.cu-list.menu>.cu-item button.content {
  1416 + padding: 0;
  1417 + background-color: transparent;
  1418 + justify-content: flex-start
  1419 +}
  1420 +
  1421 +.cu-list.menu>.cu-item button.content:after {
  1422 + display: none
  1423 +}
  1424 +
  1425 +.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar {
  1426 + border-color: var(--white)
  1427 +}
  1428 +
  1429 +.cu-list.menu>.cu-item .content>view:first-child {
  1430 + display: flex;
  1431 + align-items: center
  1432 +}
  1433 +
  1434 +.cu-list.menu>.cu-item .content>text[class*=cuIcon] {
  1435 + display: inline-block;
  1436 + margin-right: 10rpx;
  1437 + width: 1.6em;
  1438 + text-align: center
  1439 +}
  1440 +
  1441 +.cu-list.menu>.cu-item .content>image {
  1442 + display: inline-block;
  1443 + margin-right: 10rpx;
  1444 + width: 1.6em;
  1445 + height: 1.6em;
  1446 + vertical-align: middle
  1447 +}
  1448 +
  1449 +.cu-list.menu>.cu-item .content {
  1450 + font-size: 30rpx;
  1451 + line-height: 1.6em;
  1452 + flex: 1
  1453 +}
  1454 +
  1455 +.cu-list.menu>.cu-item .content .cu-tag.sm {
  1456 + display: inline-block;
  1457 + margin-left: 10rpx;
  1458 + height: 28rpx;
  1459 + font-size: 16rpx;
  1460 + line-height: 32rpx
  1461 +}
  1462 +
  1463 +.cu-list.menu>.cu-item .action .cu-tag:empty {
  1464 + right: 10rpx
  1465 +}
  1466 +
  1467 +.cu-list.menu {
  1468 + display: block;
  1469 + overflow: hidden
  1470 +}
  1471 +
  1472 +.cu-list.menu.sm-border>.cu-item:after {
  1473 + left: 30rpx;
  1474 + width: calc(200% - 120rpx)
  1475 +}
  1476 +
  1477 +.cu-list.grid>.cu-item {
  1478 + position: relative;
  1479 + display: flex;
  1480 + padding: 20rpx 0 30rpx;
  1481 + transition-duration: 0s;
  1482 + flex-direction: column
  1483 +}
  1484 +
  1485 +.cu-list.grid>.cu-item:after {
  1486 + position: absolute;
  1487 + top: 0;
  1488 + left: 0;
  1489 + box-sizing: border-box;
  1490 + width: 200%;
  1491 + height: 200%;
  1492 + border-right: 1px solid rgba(0, 0, 0, .1);
  1493 + border-bottom: 1px solid rgba(0, 0, 0, .1);
  1494 + border-radius: inherit;
  1495 + content: " ";
  1496 + transform: scale(.5);
  1497 + transform-origin: 0 0;
  1498 + pointer-events: none
  1499 +}
  1500 +
  1501 +.cu-list.grid>.cu-item text {
  1502 + display: block;
  1503 + margin-top: 10rpx;
  1504 + color: #888;
  1505 + font-size: 26rpx;
  1506 + line-height: 40rpx
  1507 +}
  1508 +
  1509 +.cu-list.grid>.cu-item [class*=cuIcon] {
  1510 + position: relative;
  1511 + display: block;
  1512 + margin-top: 20rpx;
  1513 + width: 100%;
  1514 + font-size: 48rpx
  1515 +}
  1516 +
  1517 +.cu-list.grid>.cu-item .cu-tag {
  1518 + right: auto;
  1519 + left: 50%;
  1520 + margin-left: 20rpx
  1521 +}
  1522 +
  1523 +.cu-list.grid {
  1524 + background-color: var(--white);
  1525 + text-align: center
  1526 +}
  1527 +
  1528 +.cu-list.grid.no-border>.cu-item {
  1529 + padding-top: 10rpx;
  1530 + padding-bottom: 20rpx
  1531 +}
  1532 +
  1533 +.cu-list.grid.no-border>.cu-item:after {
  1534 + border: none
  1535 +}
  1536 +
  1537 +.cu-list.grid.no-border {
  1538 + padding: 20rpx 10rpx
  1539 +}
  1540 +
  1541 +.cu-list.grid.col-3>.cu-item:nth-child(3n):after,
  1542 +.cu-list.grid.col-4>.cu-item:nth-child(4n):after,
  1543 +.cu-list.grid.col-5>.cu-item:nth-child(5n):after {
  1544 + border-right-width: 0
  1545 +}
  1546 +
  1547 +.cu-list.card-menu {
  1548 + overflow: hidden;
  1549 + margin-right: 30rpx;
  1550 + margin-left: 30rpx;
  1551 + border-radius: 20rpx
  1552 +}
  1553 +
  1554 +
  1555 +/* ==================
  1556 + 操作条
  1557 + ==================== */
  1558 +
  1559 +.cu-bar {
  1560 + display: flex;
  1561 + position: relative;
  1562 + align-items: center;
  1563 + min-height: 100rpx;
  1564 + justify-content: space-between;
  1565 +}
  1566 +
  1567 +.cu-bar .action {
  1568 + display: flex;
  1569 + align-items: center;
  1570 + height: 100%;
  1571 + justify-content: center;
  1572 + max-width: 100%;
  1573 +}
  1574 +
  1575 +.cu-bar .action.border-title {
  1576 + position: relative;
  1577 + top: -10rpx;
  1578 +}
  1579 +
  1580 +.cu-bar .action.border-title text[class*="bg-"]:last-child {
  1581 + position: absolute;
  1582 + bottom: -0.5rem;
  1583 + min-width: 2rem;
  1584 + height: 6rpx;
  1585 + left: 0;
  1586 +}
  1587 +
  1588 +.cu-bar .action.sub-title {
  1589 + position: relative;
  1590 + top: -0.2rem;
  1591 +}
  1592 +
  1593 +.cu-bar .action.sub-title text {
  1594 + position: relative;
  1595 + z-index: 1;
  1596 +}
  1597 +
  1598 +.cu-bar .action.sub-title text[class*="bg-"]:last-child {
  1599 + position: absolute;
  1600 + display: inline-block;
  1601 + bottom: -0.2rem;
  1602 + border-radius: 6rpx;
  1603 + width: 100%;
  1604 + height: 0.6rem;
  1605 + left: 0.6rem;
  1606 + opacity: 0.3;
  1607 + z-index: 0;
  1608 +}
  1609 +
  1610 +.cu-bar .action.sub-title text[class*="text-"]:last-child {
  1611 + position: absolute;
  1612 + display: inline-block;
  1613 + bottom: -0.7rem;
  1614 + left: 0.5rem;
  1615 + opacity: 0.2;
  1616 + z-index: 0;
  1617 + text-align: right;
  1618 + font-weight: 900;
  1619 + font-size: 36rpx;
  1620 +}
  1621 +
  1622 +.cu-bar.justify-center .action.border-title text:last-child,
  1623 +.cu-bar.justify-center .action.sub-title text:last-child {
  1624 + left: 0;
  1625 + right: 0;
  1626 + margin: auto;
  1627 + text-align: center;
  1628 +}
  1629 +
  1630 +.cu-bar .action:first-child {
  1631 + margin-left: 30rpx;
  1632 + font-size: 30rpx;
  1633 +}
  1634 +
  1635 +.cu-bar .action text.text-cut {
  1636 + text-align: left;
  1637 + width: 100%;
  1638 +}
  1639 +
  1640 +.cu-bar .cu-avatar:first-child {
  1641 + margin-left: 20rpx;
  1642 +}
  1643 +
  1644 +.cu-bar .action:first-child>text[class*="cuIcon-"] {
  1645 + margin-left: -0.3em;
  1646 + margin-right: 0.3em;
  1647 +}
  1648 +
  1649 +.cu-bar .action:last-child {
  1650 + margin-right: 30rpx;
  1651 +}
  1652 +
  1653 +.cu-bar .action>text[class*="cuIcon-"],
  1654 +.cu-bar .action>view[class*="cuIcon-"] {
  1655 + font-size: 36rpx;
  1656 +}
  1657 +
  1658 +.cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] {
  1659 + margin-left: 0.5em;
  1660 +}
  1661 +
  1662 +.cu-bar .content {
  1663 + position: absolute;
  1664 + text-align: center;
  1665 + width: calc(100% - 340rpx);
  1666 + left: 0;
  1667 + right: 0;
  1668 + bottom: 0;
  1669 + top: 0;
  1670 + margin: auto;
  1671 + height: 60rpx;
  1672 + font-size: 32rpx;
  1673 + line-height: 60rpx;
  1674 + cursor: none;
  1675 + pointer-events: none;
  1676 + text-overflow: ellipsis;
  1677 + white-space: nowrap;
  1678 + overflow: hidden;
  1679 +}
  1680 +
  1681 +.cu-bar.ios .content {
  1682 + bottom: 7px;
  1683 + height: 30px;
  1684 + font-size: 32rpx;
  1685 + line-height: 30px;
  1686 +}
  1687 +
  1688 +.cu-bar.btn-group {
  1689 + justify-content: space-around;
  1690 +}
  1691 +
  1692 +.cu-bar.btn-group button {
  1693 + padding: 20rpx 32rpx;
  1694 +}
  1695 +
  1696 +.cu-bar.btn-group button {
  1697 + flex: 1;
  1698 + margin: 0 20rpx;
  1699 + max-width: 50%;
  1700 +}
  1701 +
  1702 +.cu-bar .search-form {
  1703 + background-color: #f5f5f5;
  1704 + line-height: 64rpx;
  1705 + height: 64rpx;
  1706 + font-size: 24rpx;
  1707 + color: var(--black);
  1708 + flex: 1;
  1709 + display: flex;
  1710 + align-items: center;
  1711 + margin: 0 30rpx;
  1712 +}
  1713 +
  1714 +.cu-bar .search-form+.action {
  1715 + margin-right: 30rpx;
  1716 +}
  1717 +
  1718 +.cu-bar .search-form input {
  1719 + flex: 1;
  1720 + padding-right: 30rpx;
  1721 + height: 64rpx;
  1722 + line-height: 64rpx;
  1723 + font-size: 26rpx;
  1724 + background-color: transparent;
  1725 +}
  1726 +
  1727 +.cu-bar .search-form [class*="cuIcon-"] {
  1728 + margin: 0 0.5em 0 0.8em;
  1729 +}
  1730 +
  1731 +.cu-bar .search-form [class*="cuIcon-"]::before {
  1732 + top: 0rpx;
  1733 +}
  1734 +
  1735 +.cu-bar.fixed,
  1736 +.nav.fixed {
  1737 + position: fixed;
  1738 + width: 100%;
  1739 + top: 0;
  1740 + z-index: 1024;
  1741 + box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1);
  1742 +}
  1743 +
  1744 +.cu-bar.foot {
  1745 + position: fixed;
  1746 + width: 100%;
  1747 + bottom: 0;
  1748 + z-index: 1024;
  1749 + box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);
  1750 +}
  1751 +
  1752 +.cu-bar.tabbar {
  1753 + padding: 0;
  1754 + height: calc(100rpx + env(safe-area-inset-bottom) / 2);
  1755 + padding-bottom: calc(env(safe-area-inset-bottom) / 2);
  1756 +}
  1757 +
  1758 +.cu-tabbar-height {
  1759 + min-height: 100rpx;
  1760 + height: calc(100rpx + env(safe-area-inset-bottom) / 2);
  1761 +}
  1762 +
  1763 +.cu-bar.tabbar.shadow {
  1764 + box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);
  1765 +}
  1766 +
  1767 +.cu-bar.tabbar .action {
  1768 + font-size: 22rpx;
  1769 + position: relative;
  1770 + flex: 1;
  1771 + text-align: center;
  1772 + padding: 0;
  1773 + display: block;
  1774 + height: auto;
  1775 + line-height: 1;
  1776 + margin: 0;
  1777 + overflow: initial;
  1778 +}
  1779 +
  1780 +.cu-bar.tabbar.shop .action {
  1781 + width: 140rpx;
  1782 + flex: initial;
  1783 +}
  1784 +
  1785 +.cu-bar.tabbar .action.add-action {
  1786 + position: relative;
  1787 + z-index: 2;
  1788 + padding-top: 50rpx;
  1789 + background-color: inherit;
  1790 +}
  1791 +
  1792 +.cu-bar.tabbar .action.add-action [class*="cuIcon-"] {
  1793 + position: absolute;
  1794 + width: 70rpx;
  1795 + z-index: 2;
  1796 + height: 70rpx;
  1797 + border-radius: 50%;
  1798 + line-height: 70rpx;
  1799 + font-size: 50rpx;
  1800 + top: -35rpx;
  1801 + left: 0;
  1802 + right: 0;
  1803 + margin: auto;
  1804 + padding: 0;
  1805 +}
  1806 +
  1807 +.cu-bar.tabbar .action.add-action::after {
  1808 + content: "";
  1809 + position: absolute;
  1810 + width: 100rpx;
  1811 + height: 100rpx;
  1812 + top: -50rpx;
  1813 + left: 0;
  1814 + right: 0;
  1815 + margin: auto;
  1816 + box-shadow: 0 -3rpx 8rpx rgba(0, 0, 0, 0.08);
  1817 + border-radius: 50rpx;
  1818 + background-color: inherit;
  1819 + z-index: 0;
  1820 +}
  1821 +
  1822 +.cu-bar.tabbar .action.add-action::before {
  1823 + content: "";
  1824 + position: absolute;
  1825 + width: 100rpx;
  1826 + height: 30rpx;
  1827 + bottom: 30rpx;
  1828 + left: 0;
  1829 + right: 0;
  1830 + margin: auto;
  1831 + background-color: inherit;
  1832 + z-index: 1;
  1833 +}
  1834 +
  1835 +.cu-bar.tabbar .btn-group {
  1836 + flex: 1;
  1837 + display: flex;
  1838 + justify-content: space-around;
  1839 + align-items: center;
  1840 + padding: 0 10rpx;
  1841 +}
  1842 +
  1843 +.cu-bar.tabbar button.action::after {
  1844 + border: 0;
  1845 +}
  1846 +
  1847 +.cu-bar.tabbar .action [class*="cuIcon-"] {
  1848 + width: 100rpx;
  1849 + position: relative;
  1850 + display: block;
  1851 + height: auto;
  1852 + margin: 0 auto 10rpx;
  1853 + text-align: center;
  1854 + font-size: 40rpx;
  1855 +}
  1856 +
  1857 +.cu-bar.tabbar .action .cuIcon-cu-image {
  1858 + margin: 0 auto;
  1859 +}
  1860 +
  1861 +.cu-bar.tabbar .action .cuIcon-cu-image image {
  1862 + width: 50rpx;
  1863 + height: 50rpx;
  1864 + display: inline-block;
  1865 +}
  1866 +
  1867 +.cu-bar.tabbar .submit {
  1868 + align-items: center;
  1869 + display: flex;
  1870 + justify-content: center;
  1871 + text-align: center;
  1872 + position: relative;
  1873 + flex: 2;
  1874 + align-self: stretch;
  1875 +}
  1876 +
  1877 +.cu-bar.tabbar .submit:last-child {
  1878 + flex: 2.6;
  1879 +}
  1880 +
  1881 +.cu-bar.tabbar .submit+.submit {
  1882 + flex: 2;
  1883 +}
  1884 +
  1885 +.cu-bar.tabbar.border .action::before {
  1886 + content: " ";
  1887 + width: 200%;
  1888 + height: 200%;
  1889 + position: absolute;
  1890 + top: 0;
  1891 + left: 0;
  1892 + transform: scale(0.5);
  1893 + transform-origin: 0 0;
  1894 + border-right: 1rpx solid rgba(0, 0, 0, 0.1);
  1895 + z-index: 3;
  1896 +}
  1897 +
  1898 +.cu-bar.tabbar.border .action:last-child:before {
  1899 + display: none;
  1900 +}
  1901 +
  1902 +.cu-bar.input {
  1903 + padding-right: 20rpx;
  1904 + background-color: var(--white);
  1905 +}
  1906 +
  1907 +.cu-bar.input input {
  1908 + overflow: initial;
  1909 + line-height: 64rpx;
  1910 + height: 64rpx;
  1911 + min-height: 64rpx;
  1912 + flex: 1;
  1913 + font-size: 30rpx;
  1914 + margin: 0 20rpx;
  1915 +}
  1916 +
  1917 +.cu-bar.input .action {
  1918 + margin-left: 20rpx;
  1919 +}
  1920 +
  1921 +.cu-bar.input .action [class*="cuIcon-"] {
  1922 + font-size: 48rpx;
  1923 +}
  1924 +
  1925 +.cu-bar.input input+.action {
  1926 + margin-right: 20rpx;
  1927 + margin-left: 0rpx;
  1928 +}
  1929 +
  1930 +.cu-bar.input .action:first-child [class*="cuIcon-"] {
  1931 + margin-left: 0rpx;
  1932 +}
  1933 +
  1934 +.cu-custom {
  1935 + display: block;
  1936 + position: relative;
  1937 +}
  1938 +
  1939 +.cu-custom .cu-bar .content {
  1940 + width: calc(100% - 440rpx);
  1941 +}
  1942 +
  1943 +
  1944 +.cu-custom .cu-bar .content image {
  1945 + height: 60rpx;
  1946 + width: 240rpx;
  1947 +}
  1948 +
  1949 +.cu-custom .cu-bar {
  1950 + min-height: 0px;
  1951 + padding-right: 220rpx;
  1952 + box-shadow: 0rpx 0rpx 0rpx;
  1953 + z-index: 9999;
  1954 +}
  1955 +
  1956 +.cu-custom .cu-bar .border-custom {
  1957 + position: relative;
  1958 + background: rgba(0, 0, 0, 0.15);
  1959 + border-radius: 1000rpx;
  1960 + height: 30px;
  1961 +}
  1962 +
  1963 +.cu-custom .cu-bar .border-custom::after {
  1964 + content: " ";
  1965 + width: 200%;
  1966 + height: 200%;
  1967 + position: absolute;
  1968 + top: 0;
  1969 + left: 0;
  1970 + border-radius: inherit;
  1971 + transform: scale(0.5);
  1972 + transform-origin: 0 0;
  1973 + pointer-events: none;
  1974 + box-sizing: border-box;
  1975 + border: 1rpx solid var(--white);
  1976 + opacity: 0.5;
  1977 +}
  1978 +
  1979 +.cu-custom .cu-bar .border-custom::before {
  1980 + content: " ";
  1981 + width: 1rpx;
  1982 + height: 110%;
  1983 + position: absolute;
  1984 + top: 22.5%;
  1985 + left: 0;
  1986 + right: 0;
  1987 + margin: auto;
  1988 + transform: scale(0.5);
  1989 + transform-origin: 0 0;
  1990 + pointer-events: none;
  1991 + box-sizing: border-box;
  1992 + opacity: 0.6;
  1993 + background-color: var(--white);
  1994 +}
  1995 +
  1996 +.cu-custom .cu-bar .border-custom text {
  1997 + display: block;
  1998 + flex: 1;
  1999 + margin: auto !important;
  2000 + text-align: center;
  2001 + font-size: 34rpx;
  2002 +}
  2003 +
  2004 +/* ==================
  2005 + 导航栏
  2006 + ==================== */
  2007 +
  2008 +.nav {
  2009 + white-space: nowrap;
  2010 +}
  2011 +
  2012 +::-webkit-scrollbar {
  2013 + display: none;
  2014 +}
  2015 +
  2016 +.nav .cu-item {
  2017 + height: 90rpx;
  2018 + display: inline-block;
  2019 + line-height: 90rpx;
  2020 + margin: 0 10rpx;
  2021 + padding: 0 20rpx;
  2022 +}
  2023 +
  2024 +.nav .cu-item.cur {
  2025 + border-bottom: 4rpx solid;
  2026 +}
  2027 +
  2028 +/* ==================
  2029 + 时间轴
  2030 + ==================== */
  2031 +
  2032 +.cu-timeline {
  2033 + display: block;
  2034 + background-color: var(--white);
  2035 +}
  2036 +
  2037 +.cu-timeline .cu-time {
  2038 + width: 120rpx;
  2039 + text-align: center;
  2040 + padding: 20rpx 0;
  2041 + font-size: 26rpx;
  2042 + color: #888;
  2043 + display: block;
  2044 +}
  2045 +
  2046 +.cu-timeline>.cu-item {
  2047 + padding: 30rpx 30rpx 30rpx 120rpx;
  2048 + position: relative;
  2049 + display: block;
  2050 + z-index: 0;
  2051 +}
  2052 +
  2053 +.cu-timeline>.cu-item:not([class*="text-"]) {
  2054 + color: #ccc;
  2055 +}
  2056 +
  2057 +.cu-timeline>.cu-item::after {
  2058 + content: "";
  2059 + display: block;
  2060 + position: absolute;
  2061 + width: 1rpx;
  2062 + background-color: #ddd;
  2063 + left: 60rpx;
  2064 + height: 100%;
  2065 + top: 0;
  2066 + z-index: 8;
  2067 +}
  2068 +
  2069 +.cu-timeline>.cu-item::before {
  2070 + font-family: "cuIcon";
  2071 + display: block;
  2072 + position: absolute;
  2073 + top: 36rpx;
  2074 + z-index: 9;
  2075 + background-color: var(--white);
  2076 + width: 50rpx;
  2077 + height: 50rpx;
  2078 + text-align: center;
  2079 + border: none;
  2080 + line-height: 50rpx;
  2081 + left: 36rpx;
  2082 +}
  2083 +
  2084 +.cu-timeline>.cu-item:not([class*="cuIcon-"])::before {
  2085 + content: "\e763";
  2086 +}
  2087 +
  2088 +.cu-timeline>.cu-item[class*="cuIcon-"]::before {
  2089 + background-color: var(--white);
  2090 + width: 50rpx;
  2091 + height: 50rpx;
  2092 + text-align: center;
  2093 + border: none;
  2094 + line-height: 50rpx;
  2095 + left: 36rpx;
  2096 +}
  2097 +
  2098 +.cu-timeline>.cu-item>.content {
  2099 + padding: 30rpx;
  2100 + border-radius: 6rpx;
  2101 + display: block;
  2102 + line-height: 1.6;
  2103 +}
  2104 +
  2105 +.cu-timeline>.cu-item>.content:not([class*="bg-"]) {
  2106 + background-color: var(--ghostWhite);
  2107 + color: var(--black);
  2108 +}
  2109 +
  2110 +.cu-timeline>.cu-item>.content+.content {
  2111 + margin-top: 20rpx;
  2112 +}
  2113 +
  2114 +/* ==================
  2115 + 聊天
  2116 + ==================== */
  2117 +
  2118 +.cu-chat {
  2119 + display: flex;
  2120 + flex-direction: column;
  2121 +}
  2122 +
  2123 +.cu-chat .cu-item {
  2124 + display: flex;
  2125 + padding: 30rpx 30rpx 70rpx;
  2126 + position: relative;
  2127 +}
  2128 +
  2129 +.cu-chat .cu-item>.cu-avatar {
  2130 + width: 80rpx;
  2131 + height: 80rpx;
  2132 +}
  2133 +
  2134 +.cu-chat .cu-item>.main {
  2135 + max-width: calc(100% - 260rpx);
  2136 + margin: 0 40rpx;
  2137 + display: flex;
  2138 + align-items: center;
  2139 +}
  2140 +
  2141 +.cu-chat .cu-item>image {
  2142 + height: 320rpx;
  2143 +}
  2144 +
  2145 +.cu-chat .cu-item>.main .content {
  2146 + padding: 20rpx;
  2147 + border-radius: 6rpx;
  2148 + display: inline-flex;
  2149 + max-width: 100%;
  2150 + align-items: center;
  2151 + font-size: 30rpx;
  2152 + position: relative;
  2153 + min-height: 80rpx;
  2154 + line-height: 40rpx;
  2155 + text-align: left;
  2156 +}
  2157 +
  2158 +.cu-chat .cu-item>.main .content:not([class*="bg-"]) {
  2159 + background-color: var(--white);
  2160 + color: var(--black);
  2161 +}
  2162 +
  2163 +.cu-chat .cu-item .date {
  2164 + position: absolute;
  2165 + font-size: 24rpx;
  2166 + color: var(--grey);
  2167 + width: calc(100% - 320rpx);
  2168 + bottom: 20rpx;
  2169 + left: 160rpx;
  2170 +}
  2171 +
  2172 +.cu-chat .cu-item .action {
  2173 + padding: 0 30rpx;
  2174 + display: flex;
  2175 + align-items: center;
  2176 +}
  2177 +
  2178 +.cu-chat .cu-item>.main .content::after {
  2179 + content: "";
  2180 + top: 27rpx;
  2181 + transform: rotate(45deg);
  2182 + position: absolute;
  2183 + z-index: 100;
  2184 + display: inline-block;
  2185 + overflow: hidden;
  2186 + width: 24rpx;
  2187 + height: 24rpx;
  2188 + left: -12rpx;
  2189 + right: initial;
  2190 + background-color: inherit;
  2191 +}
  2192 +
  2193 +.cu-chat .cu-item.self>.main .content::after {
  2194 + left: auto;
  2195 + right: -12rpx;
  2196 +}
  2197 +
  2198 +.cu-chat .cu-item>.main .content::before {
  2199 + content: "";
  2200 + top: 30rpx;
  2201 + transform: rotate(45deg);
  2202 + position: absolute;
  2203 + z-index: -1;
  2204 + display: inline-block;
  2205 + overflow: hidden;
  2206 + width: 24rpx;
  2207 + height: 24rpx;
  2208 + left: -12rpx;
  2209 + right: initial;
  2210 + background-color: inherit;
  2211 + filter: blur(5rpx);
  2212 + opacity: 0.3;
  2213 +}
  2214 +
  2215 +.cu-chat .cu-item>.main .content:not([class*="bg-"])::before {
  2216 + background-color: var(--black);
  2217 + opacity: 0.1;
  2218 +}
  2219 +
  2220 +.cu-chat .cu-item.self>.main .content::before {
  2221 + left: auto;
  2222 + right: -12rpx;
  2223 +}
  2224 +
  2225 +.cu-chat .cu-item.self {
  2226 + justify-content: flex-end;
  2227 + text-align: right;
  2228 +}
  2229 +
  2230 +.cu-chat .cu-info {
  2231 + display: inline-block;
  2232 + margin: 20rpx auto;
  2233 + font-size: 24rpx;
  2234 + padding: 8rpx 12rpx;
  2235 + background-color: rgba(0, 0, 0, 0.2);
  2236 + border-radius: 6rpx;
  2237 + color: var(--white);
  2238 + max-width: 400rpx;
  2239 + line-height: 1.4;
  2240 +}
  2241 +
  2242 +/* ==================
  2243 + 卡片
  2244 + ==================== */
  2245 +
  2246 +.cu-card {
  2247 + display: block;
  2248 + overflow: hidden;
  2249 +}
  2250 +
  2251 +.cu-card>.cu-item {
  2252 + display: block;
  2253 + background-color: var(--white);
  2254 + overflow: hidden;
  2255 + border-radius: 10rpx;
  2256 + margin: 30rpx;
  2257 +}
  2258 +
  2259 +.cu-card>.cu-item.shadow-blur {
  2260 + overflow: initial;
  2261 +}
  2262 +
  2263 +.cu-card.no-card>.cu-item {
  2264 + margin: 0rpx;
  2265 + border-radius: 0rpx;
  2266 +}
  2267 +
  2268 +.cu-card .grid.grid-square {
  2269 + margin-bottom: -20rpx;
  2270 +}
  2271 +
  2272 +.cu-card.case .image {
  2273 + position: relative;
  2274 +}
  2275 +
  2276 +.cu-card.case .image image {
  2277 + width: 100%;
  2278 +}
  2279 +
  2280 +.cu-card.case .image .cu-tag {
  2281 + position: absolute;
  2282 + right: 0;
  2283 + top: 0;
  2284 +}
  2285 +
  2286 +.cu-card.case .image .cu-bar {
  2287 + position: absolute;
  2288 + bottom: 0;
  2289 + width: 100%;
  2290 + background-color: transparent;
  2291 + padding: 0rpx 30rpx;
  2292 +}
  2293 +
  2294 +.cu-card.case.no-card .image {
  2295 + margin: 30rpx 30rpx 0;
  2296 + overflow: hidden;
  2297 + border-radius: 10rpx;
  2298 +}
  2299 +
  2300 +.cu-card.dynamic {
  2301 + display: block;
  2302 +}
  2303 +
  2304 +.cu-card.dynamic>.cu-item {
  2305 + display: block;
  2306 + background-color: var(--white);
  2307 + overflow: hidden;
  2308 +}
  2309 +
  2310 +.cu-card.dynamic>.cu-item>.text-content {
  2311 + padding: 0 30rpx 0;
  2312 + max-height: 6.4em;
  2313 + overflow: hidden;
  2314 + font-size: 30rpx;
  2315 + margin-bottom: 20rpx;
  2316 +}
  2317 +
  2318 +.cu-card.dynamic>.cu-item .square-img {
  2319 + width: 100%;
  2320 + height: 200rpx;
  2321 + border-radius: 6rpx;
  2322 +}
  2323 +
  2324 +.cu-card.dynamic>.cu-item .only-img {
  2325 + width: 100%;
  2326 + height: 320rpx;
  2327 + border-radius: 6rpx;
  2328 +}
  2329 +
  2330 +.cu-card.article {
  2331 + display: block;
  2332 +}
  2333 +
  2334 +.cu-card.article>.cu-item {
  2335 + padding-bottom: 30rpx;
  2336 +}
  2337 +
  2338 +.cu-card.article>.cu-item .title {
  2339 + font-size: 30rpx;
  2340 + font-weight: 900;
  2341 + color: var(--black);
  2342 + line-height: 100rpx;
  2343 + padding: 0 30rpx;
  2344 +}
  2345 +
  2346 +.cu-card.article>.cu-item .content {
  2347 + display: flex;
  2348 + padding: 0 30rpx;
  2349 +}
  2350 +
  2351 +.cu-card.article>.cu-item .content>image {
  2352 + width: 240rpx;
  2353 + height: 6.4em;
  2354 + margin-right: 20rpx;
  2355 + border-radius: 6rpx;
  2356 +}
  2357 +
  2358 +.cu-card.article>.cu-item .content .desc {
  2359 + flex: 1;
  2360 + display: flex;
  2361 + flex-direction: column;
  2362 + justify-content: space-between;
  2363 +}
  2364 +
  2365 +.cu-card.article>.cu-item .content .text-content {
  2366 + font-size: 28rpx;
  2367 + color: #888;
  2368 + height: 4.8em;
  2369 + overflow: hidden;
  2370 +}
  2371 +
  2372 +/* ==================
  2373 + 表单
  2374 + ==================== */
  2375 +
  2376 +.cu-form-group {
  2377 + background-color: var(--white);
  2378 + padding: 1rpx 30rpx;
  2379 + display: flex;
  2380 + align-items: center;
  2381 + min-height: 100rpx;
  2382 + justify-content: space-between;
  2383 +}
  2384 +
  2385 +.cu-form-group+.cu-form-group {
  2386 + border-top: 1rpx solid #eee;
  2387 +}
  2388 +
  2389 +.cu-form-group .title {
  2390 + text-align: justify;
  2391 + padding-right: 30rpx;
  2392 + font-size: 30rpx;
  2393 + position: relative;
  2394 + height: 60rpx;
  2395 + line-height: 60rpx;
  2396 +}
  2397 +
  2398 +.cu-form-group input {
  2399 + flex: 1;
  2400 + font-size: 30rpx;
  2401 + color: #555;
  2402 + padding-right: 20rpx;
  2403 +}
  2404 +
  2405 +.cu-form-group>text[class*="cuIcon-"] {
  2406 + font-size: 36rpx;
  2407 + padding: 0;
  2408 + box-sizing: border-box;
  2409 +}
  2410 +
  2411 +.cu-form-group textarea {
  2412 + margin: 32rpx 0 30rpx;
  2413 + height: 4.6em;
  2414 + width: 100%;
  2415 + line-height: 1.2em;
  2416 + flex: 1;
  2417 + font-size: 28rpx;
  2418 + padding: 0;
  2419 +}
  2420 +
  2421 +.cu-form-group.align-start .title {
  2422 + height: 1em;
  2423 + margin-top: 32rpx;
  2424 + line-height: 1em;
  2425 +}
  2426 +
  2427 +.cu-form-group picker {
  2428 + flex: 1;
  2429 + padding-right: 40rpx;
  2430 + overflow: hidden;
  2431 + position: relative;
  2432 +}
  2433 +
  2434 +.cu-form-group picker .picker {
  2435 + line-height: 100rpx;
  2436 + font-size: 28rpx;
  2437 + text-overflow: ellipsis;
  2438 + white-space: nowrap;
  2439 + overflow: hidden;
  2440 + width: 100%;
  2441 + text-align: right;
  2442 +}
  2443 +
  2444 +.cu-form-group picker::after {
  2445 + font-family: "cuIcon";
  2446 + display: block;
  2447 + content: "\e6a3";
  2448 + position: absolute;
  2449 + font-size: 34rpx;
  2450 + color: var(--grey);
  2451 + line-height: 100rpx;
  2452 + width: 60rpx;
  2453 + text-align: center;
  2454 + top: 0;
  2455 + bottom: 0;
  2456 + right: -20rpx;
  2457 + margin: auto;
  2458 +}
  2459 +
  2460 +.cu-form-group textarea[disabled],
  2461 +.cu-form-group textarea[disabled] .placeholder {
  2462 + color: transparent;
  2463 +}
  2464 +
  2465 +/* ==================
  2466 + 模态窗口
  2467 + ==================== */
  2468 +
  2469 +.cu-modal {
  2470 + position: fixed;
  2471 + top: 0;
  2472 + right: 0;
  2473 + bottom: 0;
  2474 + left: 0;
  2475 + z-index: 99999;
  2476 + opacity: 0;
  2477 + outline: 0;
  2478 + text-align: center;
  2479 + -ms-transform: scale(1.185);
  2480 + transform: scale(1.185);
  2481 + backface-visibility: hidden;
  2482 + perspective: 2000rpx;
  2483 + background: rgba(0, 0, 0, 0.6);
  2484 + transition: all 0.3s ease-in-out 0s;
  2485 + pointer-events: none;
  2486 +}
  2487 +
  2488 +.cu-modal::before {
  2489 + content: "\200B";
  2490 + display: inline-block;
  2491 + height: 100%;
  2492 + vertical-align: middle;
  2493 +}
  2494 +
  2495 +.cu-modal.show {
  2496 + opacity: 1;
  2497 + transition-duration: 0.3s;
  2498 + -ms-transform: scale(1);
  2499 + transform: scale(1);
  2500 + overflow-x: hidden;
  2501 + overflow-y: auto;
  2502 + pointer-events: auto;
  2503 +}
  2504 +
  2505 +.cu-dialog {
  2506 + position: relative;
  2507 + display: inline-block;
  2508 + vertical-align: middle;
  2509 + margin-left: auto;
  2510 + margin-right: auto;
  2511 + width: 680rpx;
  2512 + max-width: 100%;
  2513 + background-color: #f8f8f8;
  2514 + border-radius: 10rpx;
  2515 + overflow: hidden;
  2516 +}
  2517 +
  2518 +.cu-modal.bottom-modal::before {
  2519 + vertical-align: bottom;
  2520 +}
  2521 +
  2522 +.cu-modal.bottom-modal .cu-dialog {
  2523 + width: 100%;
  2524 + border-radius: 0;
  2525 +}
  2526 +
  2527 +.cu-modal.bottom-modal {
  2528 + margin-bottom: -1000rpx;
  2529 +}
  2530 +
  2531 +.cu-modal.bottom-modal.show {
  2532 + margin-bottom: 0;
  2533 +}
  2534 +
  2535 +.cu-modal.drawer-modal {
  2536 + transform: scale(1);
  2537 + display: flex;
  2538 +}
  2539 +
  2540 +.cu-modal.drawer-modal .cu-dialog {
  2541 + height: 100%;
  2542 + min-width: 200rpx;
  2543 + border-radius: 0;
  2544 + margin: initial;
  2545 + transition-duration: 0.3s;
  2546 +}
  2547 +
  2548 +.cu-modal.drawer-modal.justify-start .cu-dialog {
  2549 + transform: translateX(-100%);
  2550 +}
  2551 +
  2552 +.cu-modal.drawer-modal.justify-end .cu-dialog {
  2553 + transform: translateX(100%);
  2554 +}
  2555 +
  2556 +.cu-modal.drawer-modal.show .cu-dialog {
  2557 + transform: translateX(0%);
  2558 +}
  2559 +.cu-modal .cu-dialog>.cu-bar:first-child .action{
  2560 + min-width: 100rpx;
  2561 + margin-right: 0;
  2562 + min-height: 100rpx;
  2563 +}
  2564 +/* ==================
  2565 + 轮播
  2566 + ==================== */
  2567 +swiper .a-swiper-dot {
  2568 + display: inline-block;
  2569 + width: 16rpx;
  2570 + height: 16rpx;
  2571 + background: rgba(0, 0, 0, .3);
  2572 + border-radius: 50%;
  2573 + vertical-align: middle;
  2574 +}
  2575 +
  2576 +swiper[class*="-dot"] .wx-swiper-dots {
  2577 + display: flex;
  2578 + align-items: center;
  2579 + width: 100%;
  2580 + justify-content: center;
  2581 +}
  2582 +
  2583 +swiper.square-dot .wx-swiper-dot {
  2584 + background-color: var(--white);
  2585 + opacity: 0.4;
  2586 + width: 10rpx;
  2587 + height: 10rpx;
  2588 + border-radius: 20rpx;
  2589 + margin: 0 8rpx !important;
  2590 +}
  2591 +
  2592 +swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active {
  2593 + opacity: 1;
  2594 + width: 30rpx;
  2595 +}
  2596 +
  2597 +swiper.round-dot .wx-swiper-dot {
  2598 + width: 10rpx;
  2599 + height: 10rpx;
  2600 + position: relative;
  2601 + margin: 4rpx 8rpx !important;
  2602 +}
  2603 +
  2604 +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after {
  2605 + content: "";
  2606 + position: absolute;
  2607 + width: 10rpx;
  2608 + height: 10rpx;
  2609 + top: 0rpx;
  2610 + left: 0rpx;
  2611 + right: 0;
  2612 + bottom: 0;
  2613 + margin: auto;
  2614 + background-color: var(--white);
  2615 + border-radius: 20rpx;
  2616 +}
  2617 +
  2618 +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active {
  2619 + width: 18rpx;
  2620 + height: 18rpx;
  2621 +}
  2622 +
  2623 +.screen-swiper {
  2624 + min-height: 375rpx;
  2625 +}
  2626 +
  2627 +.screen-swiper image,
  2628 +.screen-swiper video,
  2629 +.swiper-item image,
  2630 +.swiper-item video {
  2631 + width: 100%;
  2632 + display: block;
  2633 + height: 100%;
  2634 + margin: 0;
  2635 + pointer-events: none;
  2636 +}
  2637 +
  2638 +.card-swiper {
  2639 + height: 420rpx !important;
  2640 +}
  2641 +
  2642 +.card-swiper swiper-item {
  2643 + width: 610rpx !important;
  2644 + left: 70rpx;
  2645 + box-sizing: border-box;
  2646 + padding: 40rpx 0rpx 70rpx;
  2647 + overflow: initial;
  2648 +}
  2649 +
  2650 +.card-swiper swiper-item .swiper-item {
  2651 + width: 100%;
  2652 + display: block;
  2653 + height: 100%;
  2654 + border-radius: 10rpx;
  2655 + transform: scale(0.9);
  2656 + transition: all 0.2s ease-in 0s;
  2657 + overflow: hidden;
  2658 +}
  2659 +
  2660 +.card-swiper swiper-item.cur .swiper-item {
  2661 + transform: none;
  2662 + transition: all 0.2s ease-in 0s;
  2663 +}
  2664 +
  2665 +
  2666 +.tower-swiper {
  2667 + height: 420rpx;
  2668 + position: relative;
  2669 + max-width: 750rpx;
  2670 + overflow: hidden;
  2671 +}
  2672 +
  2673 +.tower-swiper .tower-item {
  2674 + position: absolute;
  2675 + width: 300rpx;
  2676 + height: 380rpx;
  2677 + top: 0;
  2678 + bottom: 0;
  2679 + left: 50%;
  2680 + margin: auto;
  2681 + transition: all 0.2s ease-in 0s;
  2682 + opacity: 1;
  2683 +}
  2684 +
  2685 +.tower-swiper .tower-item.none {
  2686 + opacity: 0;
  2687 +}
  2688 +
  2689 +.tower-swiper .tower-item .swiper-item {
  2690 + width: 100%;
  2691 + height: 100%;
  2692 + border-radius: 6rpx;
  2693 + overflow: hidden;
  2694 +}
  2695 +
  2696 +/* ==================
  2697 + 步骤条
  2698 + ==================== */
  2699 +
  2700 +.cu-steps {
  2701 + display: flex;
  2702 +}
  2703 +
  2704 +scroll-view.cu-steps {
  2705 + display: block;
  2706 + white-space: nowrap;
  2707 +}
  2708 +
  2709 +scroll-view.cu-steps .cu-item {
  2710 + display: inline-block;
  2711 +}
  2712 +
  2713 +.cu-steps .cu-item {
  2714 + flex: 1;
  2715 + text-align: center;
  2716 + position: relative;
  2717 + min-width: 100rpx;
  2718 +}
  2719 +
  2720 +.cu-steps .cu-item:not([class*="text-"]) {
  2721 + color: var(--grey);
  2722 +}
  2723 +
  2724 +.cu-steps .cu-item [class*="cuIcon-"],
  2725 +.cu-steps .cu-item .num {
  2726 + display: block;
  2727 + font-size: 40rpx;
  2728 + line-height: 80rpx;
  2729 +}
  2730 +
  2731 +.cu-steps .cu-item::before,
  2732 +.cu-steps .cu-item::after,
  2733 +.cu-steps.steps-arrow .cu-item::before,
  2734 +.cu-steps.steps-arrow .cu-item::after {
  2735 + content: "";
  2736 + display: block;
  2737 + position: absolute;
  2738 + height: 0px;
  2739 + width: calc(100% - 80rpx);
  2740 + border-bottom: 1px solid #ccc;
  2741 + left: calc(0px - (100% - 80rpx) / 2);
  2742 + top: 40rpx;
  2743 + z-index: 0;
  2744 +}
  2745 +
  2746 +.cu-steps.steps-arrow .cu-item::before,
  2747 +.cu-steps.steps-arrow .cu-item::after {
  2748 + content: "\e6a3";
  2749 + font-family: "cuIcon";
  2750 + height: 30rpx;
  2751 + border-bottom-width: 0px;
  2752 + line-height: 30rpx;
  2753 + top: 0;
  2754 + bottom: 0;
  2755 + margin: auto;
  2756 + color: #ccc;
  2757 +}
  2758 +
  2759 +.cu-steps.steps-bottom .cu-item::before,
  2760 +.cu-steps.steps-bottom .cu-item::after {
  2761 + bottom: 40rpx;
  2762 + top: initial;
  2763 +}
  2764 +
  2765 +.cu-steps .cu-item::after {
  2766 + border-bottom: 1px solid currentColor;
  2767 + width: 0px;
  2768 + transition: all 0.3s ease-in-out 0s;
  2769 +}
  2770 +
  2771 +.cu-steps .cu-item[class*="text-"]::after {
  2772 + width: calc(100% - 80rpx);
  2773 + color: currentColor;
  2774 +}
  2775 +
  2776 +.cu-steps .cu-item:first-child::before,
  2777 +.cu-steps .cu-item:first-child::after {
  2778 + display: none;
  2779 +}
  2780 +
  2781 +.cu-steps .cu-item .num {
  2782 + width: 40rpx;
  2783 + height: 40rpx;
  2784 + border-radius: 50%;
  2785 + line-height: 40rpx;
  2786 + margin: 20rpx auto;
  2787 + font-size: 24rpx;
  2788 + border: 1px solid currentColor;
  2789 + position: relative;
  2790 + overflow: hidden;
  2791 +}
  2792 +
  2793 +.cu-steps .cu-item[class*="text-"] .num {
  2794 + background-color: currentColor;
  2795 +}
  2796 +
  2797 +.cu-steps .cu-item .num::before,
  2798 +.cu-steps .cu-item .num::after {
  2799 + content: attr(data-index);
  2800 + position: absolute;
  2801 + left: 0;
  2802 + right: 0;
  2803 + top: 0;
  2804 + bottom: 0;
  2805 + margin: auto;
  2806 + transition: all 0.3s ease-in-out 0s;
  2807 + transform: translateY(0rpx);
  2808 +}
  2809 +
  2810 +.cu-steps .cu-item[class*="text-"] .num::before {
  2811 + transform: translateY(-40rpx);
  2812 + color: var(--white);
  2813 +}
  2814 +
  2815 +.cu-steps .cu-item .num::after {
  2816 + transform: translateY(40rpx);
  2817 + color: var(--white);
  2818 + transition: all 0.3s ease-in-out 0s;
  2819 +}
  2820 +
  2821 +.cu-steps .cu-item[class*="text-"] .num::after {
  2822 + content: "\e645";
  2823 + font-family: "cuIcon";
  2824 + color: var(--white);
  2825 + transform: translateY(0rpx);
  2826 +}
  2827 +
  2828 +.cu-steps .cu-item[class*="text-"] .num.err::after {
  2829 + content: "\e646";
  2830 +}
  2831 +
  2832 +/* ==================
  2833 + 布局
  2834 + ==================== */
  2835 +
  2836 +/* -- flex弹性布局 -- */
  2837 +
  2838 +.flex {
  2839 + display: flex;
  2840 +}
  2841 +
  2842 +.basis-xs {
  2843 + flex-basis: 20%;
  2844 +}
  2845 +
  2846 +.basis-sm {
  2847 + flex-basis: 40%;
  2848 +}
  2849 +
  2850 +.basis-df {
  2851 + flex-basis: 50%;
  2852 +}
  2853 +
  2854 +.basis-lg {
  2855 + flex-basis: 60%;
  2856 +}
  2857 +
  2858 +.basis-xl {
  2859 + flex-basis: 80%;
  2860 +}
  2861 +
  2862 +.flex-sub {
  2863 + flex: 1;
  2864 +}
  2865 +
  2866 +.flex-twice {
  2867 + flex: 2;
  2868 +}
  2869 +
  2870 +.flex-treble {
  2871 + flex: 3;
  2872 +}
  2873 +
  2874 +.flex-direction {
  2875 + flex-direction: column;
  2876 +}
  2877 +
  2878 +.flex-wrap {
  2879 + flex-wrap: wrap;
  2880 +}
  2881 +
  2882 +.align-start {
  2883 + align-items: flex-start;
  2884 +}
  2885 +
  2886 +.align-end {
  2887 + align-items: flex-end;
  2888 +}
  2889 +
  2890 +.align-center {
  2891 + align-items: center;
  2892 +}
  2893 +
  2894 +.align-stretch {
  2895 + align-items: stretch;
  2896 +}
  2897 +
  2898 +.self-start {
  2899 + align-self: flex-start;
  2900 +}
  2901 +
  2902 +.self-center {
  2903 + align-self: flex-center;
  2904 +}
  2905 +
  2906 +.self-end {
  2907 + align-self: flex-end;
  2908 +}
  2909 +
  2910 +.self-stretch {
  2911 + align-self: stretch;
  2912 +}
  2913 +
  2914 +.align-stretch {
  2915 + align-items: stretch;
  2916 +}
  2917 +
  2918 +.justify-start {
  2919 + justify-content: flex-start;
  2920 +}
  2921 +
  2922 +.justify-end {
  2923 + justify-content: flex-end;
  2924 +}
  2925 +
  2926 +.justify-center {
  2927 + justify-content: center;
  2928 +}
  2929 +
  2930 +.justify-between {
  2931 + justify-content: space-between;
  2932 +}
  2933 +
  2934 +.justify-around {
  2935 + justify-content: space-around;
  2936 +}
  2937 +
  2938 +/* grid布局 */
  2939 +
  2940 +.grid {
  2941 + display: flex;
  2942 + flex-wrap: wrap;
  2943 +}
  2944 +
  2945 +.grid.grid-square {
  2946 + overflow: hidden;
  2947 +}
  2948 +
  2949 +.grid.grid-square .cu-tag {
  2950 + position: absolute;
  2951 + right: 0;
  2952 + top: 0;
  2953 + border-bottom-left-radius: 6rpx;
  2954 + padding: 6rpx 12rpx;
  2955 + height: auto;
  2956 + background-color: rgba(0, 0, 0, 0.5);
  2957 +}
  2958 +
  2959 +.grid.grid-square>view>text[class*="cuIcon-"] {
  2960 + font-size: 52rpx;
  2961 + position: absolute;
  2962 + color: var(--grey);
  2963 + margin: auto;
  2964 + top: 0;
  2965 + bottom: 0;
  2966 + left: 0;
  2967 + right: 0;
  2968 + display: flex;
  2969 + justify-content: center;
  2970 + align-items: center;
  2971 + flex-direction: column;
  2972 +}
  2973 +
  2974 +.grid.grid-square>view {
  2975 + margin-right: 20rpx;
  2976 + margin-bottom: 20rpx;
  2977 + border-radius: 6rpx;
  2978 + position: relative;
  2979 + overflow: hidden;
  2980 +}
  2981 +
  2982 +.grid.grid-square>view.bg-img image {
  2983 + width: 100%;
  2984 + height: 100%;
  2985 + position: absolute;
  2986 +}
  2987 +
  2988 +.grid.col-1.grid-square>view {
  2989 + padding-bottom: 100%;
  2990 + height: 0;
  2991 + margin-right: 0;
  2992 +}
  2993 +
  2994 +.grid.col-2.grid-square>view {
  2995 + padding-bottom: calc((100% - 20rpx)/2);
  2996 + height: 0;
  2997 + width: calc((100% - 20rpx)/2);
  2998 +}
  2999 +
  3000 +.grid.col-3.grid-square>view {
  3001 + padding-bottom: calc((100% - 40rpx)/3);
  3002 + height: 0;
  3003 + width: calc((100% - 40rpx)/3);
  3004 +}
  3005 +
  3006 +.grid.col-4.grid-square>view {
  3007 + padding-bottom: calc((100% - 60rpx)/4);
  3008 + height: 0;
  3009 + width: calc((100% - 60rpx)/4);
  3010 +}
  3011 +
  3012 +.grid.col-5.grid-square>view {
  3013 + padding-bottom: calc((100% - 80rpx)/5);
  3014 + height: 0;
  3015 + width: calc((100% - 80rpx)/5);
  3016 +}
  3017 +
  3018 +.grid.col-2.grid-square>view:nth-child(2n),
  3019 +.grid.col-3.grid-square>view:nth-child(3n),
  3020 +.grid.col-4.grid-square>view:nth-child(4n),
  3021 +.grid.col-5.grid-square>view:nth-child(5n){
  3022 + margin-right: 0;
  3023 +}
  3024 +
  3025 +.grid.col-1>view {
  3026 + width: 100%;
  3027 +}
  3028 +
  3029 +.grid.col-2>view {
  3030 + width: 50%;
  3031 +}
  3032 +
  3033 +.grid.col-3>view {
  3034 + width: 33.33%;
  3035 +}
  3036 +
  3037 +.grid.col-4>view {
  3038 + width: 25%;
  3039 +}
  3040 +
  3041 +.grid.col-5>view {
  3042 + width: 20%;
  3043 +}
  3044 +
  3045 +/* -- 内外边距 -- */
  3046 +
  3047 +.margin-0 {
  3048 + margin: 0;
  3049 +}
  3050 +
  3051 +.margin-xs {
  3052 + margin: 10rpx;
  3053 +}
  3054 +
  3055 +.margin-sm {
  3056 + margin: 20rpx;
  3057 +}
  3058 +
  3059 +.margin {
  3060 + margin: 30rpx;
  3061 +}
  3062 +
  3063 +.margin-lg {
  3064 + margin: 40rpx;
  3065 +}
  3066 +
  3067 +.margin-xl {
  3068 + margin: 50rpx;
  3069 +}
  3070 +
  3071 +.margin-top-xs {
  3072 + margin-top: 10rpx;
  3073 +}
  3074 +
  3075 +.margin-top-sm {
  3076 + margin-top: 20rpx;
  3077 +}
  3078 +
  3079 +.margin-top {
  3080 + margin-top: 30rpx;
  3081 +}
  3082 +
  3083 +.margin-top-lg {
  3084 + margin-top: 40rpx;
  3085 +}
  3086 +
  3087 +.margin-top-xl {
  3088 + margin-top: 50rpx;
  3089 +}
  3090 +
  3091 +.margin-right-xs {
  3092 + margin-right: 10rpx;
  3093 +}
  3094 +
  3095 +.margin-right-sm {
  3096 + margin-right: 20rpx;
  3097 +}
  3098 +
  3099 +.margin-right {
  3100 + margin-right: 30rpx;
  3101 +}
  3102 +
  3103 +.margin-right-lg {
  3104 + margin-right: 40rpx;
  3105 +}
  3106 +
  3107 +.margin-right-xl {
  3108 + margin-right: 50rpx;
  3109 +}
  3110 +
  3111 +.margin-bottom-xs {
  3112 + margin-bottom: 10rpx;
  3113 +}
  3114 +
  3115 +.margin-bottom-sm {
  3116 + margin-bottom: 20rpx;
  3117 +}
  3118 +
  3119 +.margin-bottom {
  3120 + margin-bottom: 30rpx;
  3121 +}
  3122 +
  3123 +.margin-bottom-lg {
  3124 + margin-bottom: 40rpx;
  3125 +}
  3126 +
  3127 +.margin-bottom-xl {
  3128 + margin-bottom: 50rpx;
  3129 +}
  3130 +
  3131 +.margin-left-xs {
  3132 + margin-left: 10rpx;
  3133 +}
  3134 +
  3135 +.margin-left-sm {
  3136 + margin-left: 20rpx;
  3137 +}
  3138 +
  3139 +.margin-left {
  3140 + margin-left: 30rpx;
  3141 +}
  3142 +
  3143 +.margin-left-lg {
  3144 + margin-left: 40rpx;
  3145 +}
  3146 +
  3147 +.margin-left-xl {
  3148 + margin-left: 50rpx;
  3149 +}
  3150 +
  3151 +.margin-lr-xs {
  3152 + margin-left: 10rpx;
  3153 + margin-right: 10rpx;
  3154 +}
  3155 +
  3156 +.margin-lr-sm {
  3157 + margin-left: 20rpx;
  3158 + margin-right: 20rpx;
  3159 +}
  3160 +
  3161 +.margin-lr {
  3162 + margin-left: 30rpx;
  3163 + margin-right: 30rpx;
  3164 +}
  3165 +
  3166 +.margin-lr-lg {
  3167 + margin-left: 40rpx;
  3168 + margin-right: 40rpx;
  3169 +}
  3170 +
  3171 +.margin-lr-xl {
  3172 + margin-left: 50rpx;
  3173 + margin-right: 50rpx;
  3174 +}
  3175 +
  3176 +.margin-tb-xs {
  3177 + margin-top: 10rpx;
  3178 + margin-bottom: 10rpx;
  3179 +}
  3180 +
  3181 +.margin-tb-sm {
  3182 + margin-top: 20rpx;
  3183 + margin-bottom: 20rpx;
  3184 +}
  3185 +
  3186 +.margin-tb {
  3187 + margin-top: 30rpx;
  3188 + margin-bottom: 30rpx;
  3189 +}
  3190 +
  3191 +.margin-tb-lg {
  3192 + margin-top: 40rpx;
  3193 + margin-bottom: 40rpx;
  3194 +}
  3195 +
  3196 +.margin-tb-xl {
  3197 + margin-top: 50rpx;
  3198 + margin-bottom: 50rpx;
  3199 +}
  3200 +
  3201 +.padding-0 {
  3202 + padding: 0;
  3203 +}
  3204 +
  3205 +.padding-xs {
  3206 + padding: 10rpx;
  3207 +}
  3208 +
  3209 +.padding-sm {
  3210 + padding: 20rpx;
  3211 +}
  3212 +
  3213 +.padding {
  3214 + padding: 30rpx;
  3215 +}
  3216 +
  3217 +.padding-lg {
  3218 + padding: 40rpx;
  3219 +}
  3220 +
  3221 +.padding-xl {
  3222 + padding: 50rpx;
  3223 +}
  3224 +
  3225 +.padding-top-xs {
  3226 + padding-top: 10rpx;
  3227 +}
  3228 +
  3229 +.padding-top-sm {
  3230 + padding-top: 20rpx;
  3231 +}
  3232 +
  3233 +.padding-top {
  3234 + padding-top: 30rpx;
  3235 +}
  3236 +
  3237 +.padding-top-lg {
  3238 + padding-top: 40rpx;
  3239 +}
  3240 +
  3241 +.padding-top-xl {
  3242 + padding-top: 50rpx;
  3243 +}
  3244 +
  3245 +.padding-right-xs {
  3246 + padding-right: 10rpx;
  3247 +}
  3248 +
  3249 +.padding-right-sm {
  3250 + padding-right: 20rpx;
  3251 +}
  3252 +
  3253 +.padding-right {
  3254 + padding-right: 30rpx;
  3255 +}
  3256 +
  3257 +.padding-right-lg {
  3258 + padding-right: 40rpx;
  3259 +}
  3260 +
  3261 +.padding-right-xl {
  3262 + padding-right: 50rpx;
  3263 +}
  3264 +
  3265 +.padding-bottom-xs {
  3266 + padding-bottom: 10rpx;
  3267 +}
  3268 +
  3269 +.padding-bottom-sm {
  3270 + padding-bottom: 20rpx;
  3271 +}
  3272 +
  3273 +.padding-bottom {
  3274 + padding-bottom: 30rpx;
  3275 +}
  3276 +
  3277 +.padding-bottom-lg {
  3278 + padding-bottom: 40rpx;
  3279 +}
  3280 +
  3281 +.padding-bottom-xl {
  3282 + padding-bottom: 50rpx;
  3283 +}
  3284 +
  3285 +.padding-left-xs {
  3286 + padding-left: 10rpx;
  3287 +}
  3288 +
  3289 +.padding-left-sm {
  3290 + padding-left: 20rpx;
  3291 +}
  3292 +
  3293 +.padding-left {
  3294 + padding-left: 30rpx;
  3295 +}
  3296 +
  3297 +.padding-left-lg {
  3298 + padding-left: 40rpx;
  3299 +}
  3300 +
  3301 +.padding-left-xl {
  3302 + padding-left: 50rpx;
  3303 +}
  3304 +
  3305 +.padding-lr-xs {
  3306 + padding-left: 10rpx;
  3307 + padding-right: 10rpx;
  3308 +}
  3309 +
  3310 +.padding-lr-sm {
  3311 + padding-left: 20rpx;
  3312 + padding-right: 20rpx;
  3313 +}
  3314 +
  3315 +.padding-lr {
  3316 + padding-left: 30rpx;
  3317 + padding-right: 30rpx;
  3318 +}
  3319 +
  3320 +.padding-lr-lg {
  3321 + padding-left: 40rpx;
  3322 + padding-right: 40rpx;
  3323 +}
  3324 +
  3325 +.padding-lr-xl {
  3326 + padding-left: 50rpx;
  3327 + padding-right: 50rpx;
  3328 +}
  3329 +
  3330 +.padding-tb-xs {
  3331 + padding-top: 10rpx;
  3332 + padding-bottom: 10rpx;
  3333 +}
  3334 +
  3335 +.padding-tb-sm {
  3336 + padding-top: 20rpx;
  3337 + padding-bottom: 20rpx;
  3338 +}
  3339 +
  3340 +.padding-tb {
  3341 + padding-top: 30rpx;
  3342 + padding-bottom: 30rpx;
  3343 +}
  3344 +
  3345 +.padding-tb-lg {
  3346 + padding-top: 40rpx;
  3347 + padding-bottom: 40rpx;
  3348 +}
  3349 +
  3350 +.padding-tb-xl {
  3351 + padding-top: 50rpx;
  3352 + padding-bottom: 50rpx;
  3353 +}
  3354 +
  3355 +/* -- 浮动 -- */
  3356 +
  3357 +.cf::after,
  3358 +.cf::before {
  3359 + content: " ";
  3360 + display: table;
  3361 +}
  3362 +
  3363 +.cf::after {
  3364 + clear: both;
  3365 +}
  3366 +
  3367 +.fl {
  3368 + float: left;
  3369 +}
  3370 +
  3371 +.fr {
  3372 + float: right;
  3373 +}
  3374 +
  3375 +/* ==================
  3376 + 背景
  3377 + ==================== */
  3378 +
  3379 +.line-red::after,
  3380 +.lines-red::after {
  3381 + border-color: var(--red);
  3382 +}
  3383 +
  3384 +.line-orange::after,
  3385 +.lines-orange::after {
  3386 + border-color: var(--orange);
  3387 +}
  3388 +
  3389 +.line-yellow::after,
  3390 +.lines-yellow::after {
  3391 + border-color: var(--yellow);
  3392 +}
  3393 +
  3394 +.line-olive::after,
  3395 +.lines-olive::after {
  3396 + border-color: var(--olive);
  3397 +}
  3398 +
  3399 +.line-green::after,
  3400 +.lines-green::after {
  3401 + border-color: var(--green);
  3402 +}
  3403 +
  3404 +.line-cyan::after,
  3405 +.lines-cyan::after {
  3406 + border-color: var(--cyan);
  3407 +}
  3408 +
  3409 +.line-blue::after,
  3410 +.lines-blue::after {
  3411 + border-color: var(--blue);
  3412 +}
  3413 +
  3414 +.line-purple::after,
  3415 +.lines-purple::after {
  3416 + border-color: var(--purple);
  3417 +}
  3418 +
  3419 +.line-mauve::after,
  3420 +.lines-mauve::after {
  3421 + border-color: var(--mauve);
  3422 +}
  3423 +
  3424 +.line-pink::after,
  3425 +.lines-pink::after {
  3426 + border-color: var(--pink);
  3427 +}
  3428 +
  3429 +.line-brown::after,
  3430 +.lines-brown::after {
  3431 + border-color: var(--brown);
  3432 +}
  3433 +
  3434 +.line-grey::after,
  3435 +.lines-grey::after {
  3436 + border-color: var(--grey);
  3437 +}
  3438 +
  3439 +.line-gray::after,
  3440 +.lines-gray::after {
  3441 + border-color: var(--gray);
  3442 +}
  3443 +
  3444 +.line-black::after,
  3445 +.lines-black::after {
  3446 + border-color: var(--black);
  3447 +}
  3448 +
  3449 +.line-white::after,
  3450 +.lines-white::after {
  3451 + border-color: var(--white);
  3452 +}
  3453 +
  3454 +.bg-red {
  3455 + background-color: var(--red);
  3456 + color: var(--white);
  3457 +}
  3458 +
  3459 +.bg-orange {
  3460 + background-color: var(--orange);
  3461 + color: var(--white);
  3462 +}
  3463 +
  3464 +.bg-yellow {
  3465 + background-color: var(--yellow);
  3466 + color: var(--black);
  3467 +}
  3468 +
  3469 +.bg-olive {
  3470 + background-color: var(--olive);
  3471 + color: var(--white);
  3472 +}
  3473 +
  3474 +.bg-green {
  3475 + background-color: var(--green);
  3476 + color: var(--white);
  3477 +}
  3478 +
  3479 +.bg-cyan {
  3480 + background-color: var(--cyan);
  3481 + color: var(--white);
  3482 +}
  3483 +
  3484 +.bg-blue {
  3485 + background-color: var(--blue);
  3486 + color: var(--white);
  3487 +}
  3488 +
  3489 +.bg-purple {
  3490 + background-color: var(--purple);
  3491 + color: var(--white);
  3492 +}
  3493 +
  3494 +.bg-mauve {
  3495 + background-color: var(--mauve);
  3496 + color: var(--white);
  3497 +}
  3498 +
  3499 +.bg-pink {
  3500 + background-color: var(--pink);
  3501 + color: var(--white);
  3502 +}
  3503 +
  3504 +.bg-brown {
  3505 + background-color: var(--brown);
  3506 + color: var(--white);
  3507 +}
  3508 +
  3509 +.bg-grey {
  3510 + background-color: var(--grey);
  3511 + color: var(--white);
  3512 +}
  3513 +
  3514 +.bg-gray {
  3515 + background-color: #f0f0f0;
  3516 + color: var(--black);
  3517 +}
  3518 +
  3519 +.bg-black {
  3520 + background-color: var(--black);
  3521 + color: var(--white);
  3522 +}
  3523 +
  3524 +.bg-white {
  3525 + background-color: var(--white);
  3526 + color: var(--darkGray);
  3527 +}
  3528 +
  3529 +.bg-shadeTop {
  3530 + background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01));
  3531 + color: var(--white);
  3532 +}
  3533 +
  3534 +.bg-shadeBottom {
  3535 + background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1));
  3536 + color: var(--white);
  3537 +}
  3538 +
  3539 +.bg-red.light {
  3540 + color: var(--red);
  3541 + background-color: var(--redLight);
  3542 +}
  3543 +
  3544 +.bg-orange.light {
  3545 + color: var(--orange);
  3546 + background-color: var(--orangeLight);
  3547 +}
  3548 +
  3549 +.bg-yellow.light {
  3550 + color: var(--yellow);
  3551 + background-color: var(--yellowLight);
  3552 +}
  3553 +
  3554 +.bg-olive.light {
  3555 + color: var(--olive);
  3556 + background-color: var(--oliveLight);
  3557 +}
  3558 +
  3559 +.bg-green.light {
  3560 + color: var(--green);
  3561 + background-color: var(--greenLight);
  3562 +}
  3563 +
  3564 +.bg-cyan.light {
  3565 + color: var(--cyan);
  3566 + background-color: var(--cyanLight);
  3567 +}
  3568 +
  3569 +.bg-blue.light {
  3570 + color: var(--blue);
  3571 + background-color: var(--blueLight);
  3572 +}
  3573 +
  3574 +.bg-purple.light {
  3575 + color: var(--purple);
  3576 + background-color: var(--purpleLight);
  3577 +}
  3578 +
  3579 +.bg-mauve.light {
  3580 + color: var(--mauve);
  3581 + background-color: var(--mauveLight);
  3582 +}
  3583 +
  3584 +.bg-pink.light {
  3585 + color: var(--pink);
  3586 + background-color: var(--pinkLight);
  3587 +}
  3588 +
  3589 +.bg-brown.light {
  3590 + color: var(--brown);
  3591 + background-color: var(--brownLight);
  3592 +}
  3593 +
  3594 +.bg-grey.light {
  3595 + color: var(--grey);
  3596 + background-color: var(--greyLight);
  3597 +}
  3598 +
  3599 +.bg-gradual-red {
  3600 + background-image: var(--gradualRed);
  3601 + color: var(--white);
  3602 +}
  3603 +
  3604 +.bg-gradual-orange {
  3605 + background-image: var(--gradualOrange);
  3606 + color: var(--white);
  3607 +}
  3608 +
  3609 +.bg-gradual-green {
  3610 + background-image: var(--gradualGreen);
  3611 + color: var(--white);
  3612 +}
  3613 +
  3614 +.bg-gradual-purple {
  3615 + background-image: var(--gradualPurple);
  3616 + color: var(--white);
  3617 +}
  3618 +
  3619 +.bg-gradual-pink {
  3620 + background-image: var(--gradualPink);
  3621 + color: var(--white);
  3622 +}
  3623 +
  3624 +.bg-gradual-blue {
  3625 + background-image: var(--gradualBlue);
  3626 + color: var(--white);
  3627 +}
  3628 +.bg-blue-blue{
  3629 + background: linear-gradient(90deg, #3BBFF5 0%, #57A0FF 100%);
  3630 + color: var(--white);
  3631 +}
  3632 +
  3633 +.shadow[class*="-red"] {
  3634 + box-shadow: var(--ShadowSize) var(--redShadow);
  3635 +}
  3636 +
  3637 +.shadow[class*="-orange"] {
  3638 + box-shadow: var(--ShadowSize) var(--orangeShadow);
  3639 +}
  3640 +
  3641 +.shadow[class*="-yellow"] {
  3642 + box-shadow: var(--ShadowSize) var(--yellowShadow);
  3643 +}
  3644 +
  3645 +.shadow[class*="-olive"] {
  3646 + box-shadow: var(--ShadowSize) var(--oliveShadow);
  3647 +}
  3648 +
  3649 +.shadow[class*="-green"] {
  3650 + box-shadow: var(--ShadowSize) var(--greenShadow);
  3651 +}
  3652 +
  3653 +.shadow[class*="-cyan"] {
  3654 + box-shadow: var(--ShadowSize) var(--cyanShadow);
  3655 +}
  3656 +
  3657 +.shadow[class*="-blue"] {
  3658 + box-shadow: var(--ShadowSize) var(--blueShadow);
  3659 +}
  3660 +
  3661 +.shadow[class*="-purple"] {
  3662 + box-shadow: var(--ShadowSize) var(--purpleShadow);
  3663 +}
  3664 +
  3665 +.shadow[class*="-mauve"] {
  3666 + box-shadow: var(--ShadowSize) var(--mauveShadow);
  3667 +}
  3668 +
  3669 +.shadow[class*="-pink"] {
  3670 + box-shadow: var(--ShadowSize) var(--pinkShadow);
  3671 +}
  3672 +
  3673 +.shadow[class*="-brown"] {
  3674 + box-shadow: var(--ShadowSize) var(--brownShadow);
  3675 +}
  3676 +
  3677 +.shadow[class*="-grey"] {
  3678 + box-shadow: var(--ShadowSize) var(--greyShadow);
  3679 +}
  3680 +
  3681 +.shadow[class*="-gray"] {
  3682 + box-shadow: var(--ShadowSize) var(--grayShadow);
  3683 +}
  3684 +
  3685 +.shadow[class*="-black"] {
  3686 + box-shadow: var(--ShadowSize) var(--blackShadow);
  3687 +}
  3688 +
  3689 +.shadow[class*="-white"] {
  3690 + box-shadow: var(--ShadowSize) var(--blackShadow);
  3691 +}
  3692 +
  3693 +.text-shadow[class*="-red"] {
  3694 + text-shadow: var(--ShadowSize) var(--redShadow);
  3695 +}
  3696 +
  3697 +.text-shadow[class*="-orange"] {
  3698 + text-shadow: var(--ShadowSize) var(--orangeShadow);
  3699 +}
  3700 +
  3701 +.text-shadow[class*="-yellow"] {
  3702 + text-shadow: var(--ShadowSize) var(--yellowShadow);
  3703 +}
  3704 +
  3705 +.text-shadow[class*="-olive"] {
  3706 + text-shadow: var(--ShadowSize) var(--oliveShadow);
  3707 +}
  3708 +
  3709 +.text-shadow[class*="-green"] {
  3710 + text-shadow: var(--ShadowSize) var(--greenShadow);
  3711 +}
  3712 +
  3713 +.text-shadow[class*="-cyan"] {
  3714 + text-shadow: var(--ShadowSize) var(--cyanShadow);
  3715 +}
  3716 +
  3717 +.text-shadow[class*="-blue"] {
  3718 + text-shadow: var(--ShadowSize) var(--blueShadow);
  3719 +}
  3720 +
  3721 +.text-shadow[class*="-purple"] {
  3722 + text-shadow: var(--ShadowSize) var(--purpleShadow);
  3723 +}
  3724 +
  3725 +.text-shadow[class*="-mauve"] {
  3726 + text-shadow: var(--ShadowSize) var(--mauveShadow);
  3727 +}
  3728 +
  3729 +.text-shadow[class*="-pink"] {
  3730 + text-shadow: var(--ShadowSize) var(--pinkShadow);
  3731 +}
  3732 +
  3733 +.text-shadow[class*="-brown"] {
  3734 + text-shadow: var(--ShadowSize) var(--brownShadow);
  3735 +}
  3736 +
  3737 +.text-shadow[class*="-grey"] {
  3738 + text-shadow: var(--ShadowSize) var(--greyShadow);
  3739 +}
  3740 +
  3741 +.text-shadow[class*="-gray"] {
  3742 + text-shadow: var(--ShadowSize) var(--grayShadow);
  3743 +}
  3744 +
  3745 +.text-shadow[class*="-black"] {
  3746 + text-shadow: var(--ShadowSize) var(--blackShadow);
  3747 +}
  3748 +
  3749 +.bg-img {
  3750 + background-size: cover;
  3751 + background-position: center;
  3752 + background-repeat: no-repeat;
  3753 +}
  3754 +
  3755 +.bg-mask {
  3756 + background-color: var(--black);
  3757 + position: relative;
  3758 +}
  3759 +
  3760 +.bg-mask::after {
  3761 + content: "";
  3762 + border-radius: inherit;
  3763 + width: 100%;
  3764 + height: 100%;
  3765 + display: block;
  3766 + background-color: rgba(0, 0, 0, 0.4);
  3767 + position: absolute;
  3768 + left: 0;
  3769 + right: 0;
  3770 + bottom: 0;
  3771 + top: 0;
  3772 +}
  3773 +
  3774 +.bg-mask view,
  3775 +.bg-mask cover-view {
  3776 + z-index: 5;
  3777 + position: relative;
  3778 +}
  3779 +
  3780 +.bg-video {
  3781 + position: relative;
  3782 +}
  3783 +
  3784 +.bg-video video {
  3785 + display: block;
  3786 + height: 100%;
  3787 + width: 100%;
  3788 + -o-object-fit: cover;
  3789 + object-fit: cover;
  3790 + position: absolute;
  3791 + top: 0;
  3792 + z-index: 0;
  3793 + pointer-events: none;
  3794 +}
  3795 +
  3796 +/* ==================
  3797 + 文本
  3798 + ==================== */
  3799 +
  3800 +.text-xs {
  3801 + font-size: 20rpx;
  3802 +}
  3803 +.text-22{
  3804 + font-size: 22rpx;
  3805 +}
  3806 +.text-sm {
  3807 + font-size: 24rpx;
  3808 +}
  3809 +.text-26{
  3810 + font-size: 26rpx;
  3811 +}
  3812 +.text-df {
  3813 + font-size: 28rpx;
  3814 +}
  3815 +
  3816 +.text-lg {
  3817 + font-size: 32rpx;
  3818 +}
  3819 +
  3820 +.text-xl {
  3821 + font-size: 36rpx;
  3822 +}
  3823 +
  3824 +.text-xxl {
  3825 + font-size: 44rpx;
  3826 +}
  3827 +
  3828 +.text-sl {
  3829 + font-size: 80rpx;
  3830 +}
  3831 +
  3832 +.text-xsl {
  3833 + font-size: 120rpx;
  3834 +}
  3835 +
  3836 +.text-Abc {
  3837 + text-transform: Capitalize;
  3838 +}
  3839 +
  3840 +.text-ABC {
  3841 + text-transform: Uppercase;
  3842 +}
  3843 +
  3844 +.text-abc {
  3845 + text-transform: Lowercase;
  3846 +}
  3847 +
  3848 +.text-price::before {
  3849 + content: "¥";
  3850 + font-size: 80%;
  3851 + margin-right: 4rpx;
  3852 +}
  3853 +
  3854 +.text-cut {
  3855 + text-overflow: ellipsis;
  3856 + white-space: nowrap;
  3857 + overflow: hidden;
  3858 +}
  3859 +
  3860 +.text-bold {
  3861 + font-weight: bold;
  3862 +}
  3863 +
  3864 +.text-center {
  3865 + text-align: center;
  3866 +}
  3867 +
  3868 +.text-content {
  3869 + line-height: 1.6;
  3870 +}
  3871 +
  3872 +.text-left {
  3873 + text-align: left;
  3874 +}
  3875 +
  3876 +.text-right {
  3877 + text-align: right;
  3878 +}
  3879 +
  3880 +.text-red,
  3881 +.line-red,
  3882 +.lines-red {
  3883 + color: var(--red);
  3884 +}
  3885 +
  3886 +.text-orange,
  3887 +.line-orange,
  3888 +.lines-orange {
  3889 + color: var(--orange);
  3890 +}
  3891 +
  3892 +.text-yellow,
  3893 +.line-yellow,
  3894 +.lines-yellow {
  3895 + color: var(--yellow);
  3896 +}
  3897 +
  3898 +.text-olive,
  3899 +.line-olive,
  3900 +.lines-olive {
  3901 + color: var(--olive);
  3902 +}
  3903 +
  3904 +.text-green,
  3905 +.line-green,
  3906 +.lines-green {
  3907 + color: var(--green);
  3908 +}
  3909 +
  3910 +.text-cyan,
  3911 +.line-cyan,
  3912 +.lines-cyan {
  3913 + color: var(--cyan);
  3914 +}
  3915 +
  3916 +.text-blue,
  3917 +.line-blue,
  3918 +.lines-blue {
  3919 + color: var(--blue);
  3920 +}
  3921 +
  3922 +.text-purple,
  3923 +.line-purple,
  3924 +.lines-purple {
  3925 + color: var(--purple);
  3926 +}
  3927 +
  3928 +.text-mauve,
  3929 +.line-mauve,
  3930 +.lines-mauve {
  3931 + color: var(--mauve);
  3932 +}
  3933 +
  3934 +.text-pink,
  3935 +.line-pink,
  3936 +.lines-pink {
  3937 + color: var(--pink);
  3938 +}
  3939 +
  3940 +.text-brown,
  3941 +.line-brown,
  3942 +.lines-brown {
  3943 + color: var(--brown);
  3944 +}
  3945 +
  3946 +.text-grey,
  3947 +.line-grey,
  3948 +.lines-grey {
  3949 + color: var(--grey);
  3950 +}
  3951 +
  3952 +.text-gray,
  3953 +.line-gray,
  3954 +.lines-gray {
  3955 + color: var(--gray);
  3956 +}
  3957 +
  3958 +.text-black,
  3959 +.line-black,
  3960 +.lines-black {
  3961 + color: var(--black);
  3962 +}
  3963 +
  3964 +.text-white,
  3965 +.line-white,
  3966 +.lines-white {
  3967 + color: var(--white);
  3968 +}
  1 +// components/showModal/showModal.js
  2 +import util from '../../../utils/util'
  3 +
  4 +const properties = {
  5 + cancelText: {type: String, value: ''},
  6 + cancelColor: {type: String, value: '#000'},
  7 + confirmText: {type: String, value: '确认'},
  8 + confirmColor: {type: String, value: '#fff'},
  9 + header: {type: String, value: '确认信息'},
  10 + body: {type: String, value: '确认信息'},
  11 + cla: String,
  12 +};
  13 +Component({
  14 + options: {
  15 + multipleSlots: true // 在组件定义时的选项中启用多slot支持
  16 + },
  17 + /**
  18 + * 组件的属性列表
  19 + */
  20 + properties: properties,
  21 +
  22 + /**
  23 + * 组件的初始数据
  24 + */
  25 + data: {
  26 + hasShow: false,
  27 + },
  28 + attached() {
  29 + let opt = {};
  30 + Object.keys(properties).forEach((k) => {
  31 + opt[k] = this.data[k]
  32 + })
  33 + this.setData({
  34 + opt: opt
  35 + })
  36 + },
  37 + /**
  38 + * 组件的方法列表
  39 + */
  40 + methods: {
  41 + options(obj) {
  42 + let opt = this.data.opt;
  43 + this.setData({
  44 + opt: {
  45 + ...opt,
  46 + ...obj
  47 + }
  48 + })
  49 + return this;
  50 + },
  51 + show() {
  52 + console.log(this.data.opt)
  53 + this.setData({
  54 + hasShow: true,
  55 + })
  56 + },
  57 + tapButton(e) {
  58 + if(util.attr(e, 'type')=='confirm'){
  59 + this.triggerEvent('event', {type: util.attr(e, 'type')})
  60 + }
  61 + this.hide();
  62 + },
  63 + hide() {
  64 + this.setData({
  65 + hasShow: false,
  66 + })
  67 + }
  68 + }
  69 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
  1 +<!--components/showModal/showModal.wxml-->
  2 +<view class="cu-modal bottom-modal {{hasShow?'show':''}}" bindtap="hide">
  3 + <view class="cu-dialog confirm bg-white" catchtap="catchtap">
  4 + <view class="view padding-lg">
  5 + {{opt.header}}
  6 + </view>
  7 + <view class="view margin-bottom-xl">
  8 + {{opt.body}}
  9 + </view>
  10 + <view class="flex justify-center margin-bottom-lg margin-top">
  11 + <button class="view cu-btn margin-right-xl round bg-ghostWhite" wx:if="{{opt.cancelText}}"
  12 + bindtap="tapButton" data-type="cancel"
  13 + style="color:{{opt.cancelColor}};">{{opt.cancelText}}</button>
  14 + <button class="view cu-btn round bg-blue"
  15 + bindtap="tapButton" data-type="confirm"
  16 + style="color:{{opt.confirmColor}};">{{opt.confirmText}}</button>
  17 + </view>
  18 + </view>
  19 +</view>
  1 +/* components/showModal/showModal.wxss */
  2 +@import "../../../colorui/main.wxss";
  3 +.confirm{
  4 + border-radius: 40rpx 40rpx 0rpx 0rpx !important;
  5 +}
  6 +.bg-ghostWhite{
  7 + background-color: var(--ghostWhite);
  8 +}
  1 +// components/actionSheet/phone.js
  2 +import util from '../../../utils/util';
  3 +Component({
  4 + /**
  5 + * 组件的属性列表
  6 + */
  7 + properties: {
  8 + //items: Array,//电话列表
  9 + //seller:Object,//商家信息
  10 + hasTip:{
  11 + type:Boolean,
  12 + value:true,
  13 + },
  14 + },
  15 +
  16 + /**
  17 + * 组件的初始数据
  18 + */
  19 + data: {
  20 + actionSheetHidden: true,
  21 + hasOnlineReserve:false,
  22 + },
  23 +
  24 + /**
  25 + * 组件的方法列表
  26 + */
  27 + methods: {
  28 + show(seller){
  29 + this.seller=seller
  30 + let seller_tel = this.seller.seller_tel;
  31 + // if(this.seller.is_online_reserve==1 && this.seller.is_tele==0){
  32 + // //开通在线预订,但无商家接单设备,拨打运营电话
  33 + // seller_tel = ['400-000-9690']
  34 + // }else{
  35 + // if (seller_tel.length < 1) {
  36 + // seller_tel = [this.seller.phone]
  37 + // }
  38 + // }
  39 + console.log('seller_tel',seller_tel)
  40 + if (seller_tel.length < 1) {
  41 + seller_tel = [this.seller.phone]
  42 + }
  43 + this.setData({
  44 + actionSheetHidden: false,
  45 + items:seller_tel,
  46 + hasOnlineReserve:this.seller.is_online_reserve==1
  47 + })
  48 + },
  49 + hide(){
  50 + this.setData({
  51 + actionSheetHidden: true,
  52 + })
  53 + },
  54 + bindItemTap(e){
  55 + this.hide();
  56 + let index=util.attr(e,'index')
  57 + if(index=='reserve'){//跳转到预订页
  58 + let pages=getCurrentPages();
  59 + let p=pages[pages.length-1];
  60 + if(p.route=='pages/reserve/detail'){
  61 + p.setData({
  62 + activeTab:'reserve'
  63 + })
  64 + }else{
  65 + let url=util.http_build_query({id:this.seller.id,activeTab:'reserve'},'/pages/reserve/detail')
  66 + wx.navigateTo({
  67 + url:url,
  68 + })
  69 + }
  70 + return;
  71 + }else{
  72 + let value=util.attr(e,'value')
  73 + wx.makePhoneCall({
  74 + phoneNumber: value.replace(/[^\d]/g, '')
  75 + })
  76 + }
  77 + },
  78 + actionSheetChange(){
  79 + this.hide();
  80 + }
  81 + }
  82 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
  1 +<!--components/actionSheet/phone.wxml-->
  2 +<view class="cu-modal bottom-modal {{!actionSheetHidden?'show':''}}" catchtap="hide">
  3 + <view class="cu-dialog bg-white" catchtap="catchtap" style="border-radius: 40rpx 40rpx 0rpx 0rpx">
  4 + <view class="view flex flex-direction justify-center align-center padding-lr-xl" >
  5 + <block wx:for="{{items}}" wx:key="itemskey">
  6 + <view class="view flex justify-center align-center phone-item" style="width: 100%;"
  7 + bindtap="bindItemTap" data-value="{{item}}" data-index="{{index}}">
  8 + <view class="view p2"></view>
  9 + <view class="margin-left-sm margin-tb-lg" style="font-size: 34rpx;">{{item}}</view>
  10 + </view>
  11 + </block>
  12 + <view class="action-sheet-cancel view" bindtap="hide">取消</view>
  13 + </view>
  14 + </view>
  15 +</view>
  1 +/* components/actionSheet/phone.wxss */
  2 +@import "../../../colorui/main.wxss";
  3 +.p2{
  4 + background-image: url("http://nosqn.colorcun.com/2.0/home%20%2816%29.png");
  5 + width: 40rpx;
  6 + height: 40rpx;
  7 +}
  8 +.action-sheet-cancel{
  9 + height:80rpx;
  10 + background:#F5F5F5;
  11 + border-radius:42rpx;
  12 + width: 100%;
  13 + text-align: center;
  14 + font-size:34rpx;
  15 + font-weight:400;
  16 + color: #666666;
  17 + line-height:80rpx;
  18 + margin-top: 20rpx;
  19 + margin-bottom: 40rpx;
  20 +}
  21 +.phone-item+.phone-item{
  22 + border-top: 2rpx solid #E5E5E5;
  23 +}
  1 +// components/reserve/caixi.js
  2 +import util from '../../../utils/util';
  3 +Component({
  4 + /**
  5 + * 组件的属性列表
  6 + */
  7 + properties: {
  8 + multiArray:{
  9 + type:Array,
  10 + value:[],
  11 + },
  12 + multiIndex:{
  13 + type:Array,
  14 + value:[],
  15 + },
  16 + },
  17 +
  18 + /**
  19 + * 组件的初始数据
  20 + */
  21 + data: {
  22 + hidden:true
  23 + },
  24 +
  25 + /**
  26 + * 组件的方法列表
  27 + */
  28 + methods: {
  29 + hide(){
  30 + this.setData({
  31 + hidden:true,
  32 + })
  33 + },
  34 + active(e){
  35 + this.triggerEvent('active',util.attr(e,'index'));
  36 + this.hide();
  37 + },
  38 + show(){
  39 + this.setData({
  40 + hidden:false,
  41 + })
  42 + },
  43 + }
  44 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
  1 +<!--components/reserve/caixi.wxml-->
  2 +<view class="caixi {{hidden?'':'animation-slide-top'}}" catchtap="hide" hidden="{{hidden}}">
  3 + <view class="caixi-view">
  4 + <view class="item {{index==multiIndex[0]?'active':''}}"
  5 + bindtap="active" data-index="{{index}}"
  6 + wx:for="{{multiArray[0]}}" wx:key="multiArraykey">
  7 + {{item}}
  8 + <view class="number" wx:if="{{index>=1 && index<4}}">{{index}}</view>
  9 + </view>
  10 + </view>
  11 +</view>
  12 +
  1 +/* components/reserve/caixi.wxss */
  2 +@import "../../../app.wxss";
  3 +@import "../../../colorui/animation.wxss";
  4 +.caixi{
  5 + background-color: #fefefe;
  6 + position: absolute;
  7 + width: calc(100% - 80rpx);
  8 + border-radius: 0rpx 0rpx 40rpx 40rpx;
  9 + padding: 0rpx 40rpx 30rpx;
  10 + color: #666666;
  11 + padding-top: 20rpx;
  12 +}
  13 +.caixi-view{
  14 +
  15 +}
  16 +.item{
  17 + background-color: #F1F1F1;
  18 + width: 150rpx;
  19 + height: 70rpx;
  20 + overflow: hidden;
  21 + white-space:nowrap;
  22 + border-radius: 4rpx;
  23 + line-height: 70rpx;
  24 + font-size: 24rpx;
  25 + text-align: center;
  26 + margin-bottom: 30rpx;
  27 + position: relative;
  28 + display: inline-block;
  29 + margin-right: calc((100% - 600rpx) / 3);
  30 +}
  31 +.item:nth-child(4n){
  32 + margin-right:0;
  33 +}
  34 +.item.active{
  35 + background: #E6F3FF;
  36 + color:#42A5FF;
  37 + font-weight: 400;
  38 +}
  39 +.item .number{
  40 + width: 28rpx;
  41 + height: 28rpx;
  42 + background: linear-gradient(180deg, #FFC140 0%, #FFA000 100%);
  43 + border-radius: 0px 0px 10rpx 0px;
  44 + position: absolute;
  45 + top:0;
  46 + left: 0;
  47 +
  48 + height: 28rpx;
  49 + font-size: 20rpx;
  50 + font-weight: 600;
  51 + color: #FFFFFF;
  52 + line-height: 28rpx;
  53 +}
  1 +// components/2.0/filter/filter-group.js
  2 +import DA from '../../../pages/reserve/data';
  3 +import util from '../../../utils/util'
  4 +Component({
  5 + /**
  6 + * 组件的属性列表
  7 + */
  8 + properties: {
  9 + height:Number,
  10 + disabled:Boolean,
  11 + },
  12 +
  13 + /**
  14 + * 组件的初始数据
  15 + */
  16 + data: {
  17 + multiArray: ['全部菜系'],
  18 + multiIndex: [0],
  19 + tags: [
  20 + {id: 1, name: '环境好'},
  21 + {id: 2, name: '菜品有特色'},
  22 + {id: 3, name: '超大包间'},
  23 + ],
  24 + caixiOpened:false,
  25 + filterOpened:false,
  26 + },
  27 + attached(){
  28 + this.init()
  29 + this.filterParams= null
  30 + this.paramsData={}//过滤参数集合
  31 + },
  32 + /**
  33 + * 组件的方法列表
  34 + */
  35 + methods: {
  36 + async init(){
  37 + this.setData({
  38 + multiArray: [['全部菜系'].concat(await DA.getCates())]
  39 + })
  40 + },
  41 + caixiActive(e) {
  42 + console.log('caixiActive', e);
  43 + this.setData({
  44 + multiIndex: [e.detail]
  45 + })
  46 + if(e.detail>0){
  47 + DA.getCatesID(parseInt(e.detail) - 1).then(cuisine=>{
  48 + this.paramsData.cuisine=cuisine
  49 + this.eventPush()
  50 + })
  51 + }else{
  52 + this.paramsData.cuisine=""
  53 + this.eventPush()
  54 + }
  55 + this.hide()
  56 + },
  57 + caixiShow() {
  58 + if(this.data.multiArray[0].length==1){
  59 + return this.init()
  60 + }
  61 + if(this.data.disabled) return;
  62 + if(this.data.caixiOpened){
  63 + this.selectComponent('#caixi').hide();
  64 + this.setData({
  65 + caixiOpened:false,
  66 + })
  67 + }else{
  68 + this.selectComponent('#filter').hide();
  69 + this.selectComponent('#caixi').show();
  70 + this.setData({
  71 + caixiOpened:true,
  72 + filterOpened:false,
  73 + })
  74 + }
  75 + },
  76 + filterShow() {
  77 + if(this.data.disabled) return;
  78 + if(this.data.filterOpened){
  79 + this.selectComponent('#filter').hide();
  80 + this.setData({
  81 + filterOpened:false,
  82 + })
  83 + }else{
  84 + this.selectComponent('#caixi').hide();
  85 + this.selectComponent('#filter').show(this.filterParams);
  86 + this.setData({
  87 + filterOpened:true,
  88 + caixiOpened:false,
  89 + })
  90 + }
  91 + },
  92 +
  93 + filterEvent(e) {
  94 + console.log('filterEvent', e)
  95 + if (e.detail.type == 'clean') {
  96 + this.filterParams = null
  97 + this.setData({
  98 + filterParams: null,
  99 + })
  100 + } else {
  101 + this.filterParams = e.detail.data
  102 + this.setData({
  103 + filterParams: this.filterParams,
  104 + })
  105 + }
  106 + this.paramsData.filterParams=this.filterParams
  107 + this.paramsData.average=""
  108 + if(this.filterParams){
  109 + let filterParams = this.filterParams.min + ',' + this.filterParams.max
  110 + if (this.filterParams.min == this.filterParams.max && this.filterParams.min == 300) {
  111 + filterParams = this.filterParams.min + ',' + parseInt(new Date() / 1000)
  112 + }
  113 + this.paramsData.average = filterParams
  114 + }
  115 + this.eventPush()
  116 + this.hide()
  117 + },
  118 + tagsChange(e) {
  119 + if(this.data.disabled) return;
  120 + let id = util.attr(e, 'id');
  121 + let tags = this.data.tags;
  122 + let tagsIds=[];
  123 + tags.forEach(t => {
  124 + if (t.id == id) {
  125 + t.active = !t.active
  126 + }
  127 + if (t.active) {
  128 + tagsIds.push(t.id)
  129 + }
  130 + })
  131 + this.setData({
  132 + tags:tags,
  133 + })
  134 + this.paramsData.tags=tagsIds.toString()
  135 + this.eventPush()
  136 + this.hide()
  137 + },
  138 + hide(){
  139 + this.selectComponent('#caixi').hide();
  140 + this.selectComponent('#filter').hide();
  141 + this.setData({
  142 + filterOpened:false,
  143 + caixiOpened:false,
  144 + })
  145 + },
  146 + eventPush(){
  147 + this.triggerEvent('event',this.paramsData);
  148 + },
  149 +
  150 + }
  151 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {
  4 + "caixi":"./caixi",
  5 + "filter":"./filter"
  6 + }
  7 +}
  1 +<!--components/2.0/filter/filter-group.wxml-->
  2 +<view class="view filter-group-view {{caixiOpened || filterOpened?'mask':''}}"
  3 + bindtap="hide"
  4 + style="height: {{caixiOpened || filterOpened?height+'px':'auto'}};">
  5 + <view catchtap="catchtap"
  6 + class="view bg-white flex flex-sub filter-group padding-top-sm padding-left-lg padding-right-lg padding-bottom-sm {{caixiOpened || filterOpened?'filter-group-opened':''}}">
  7 + <view class="view cu-tag round {{caixiOpened?'opened text-blue':''}} {{multiIndex[0]>0?'bg-blue light':''}} " bindtap="caixiShow">
  8 + <block wx:if="{{multiIndex[0]==0}}">菜系</block>
  9 + <block wx:else="">{{multiArray[0][multiIndex[0]]}}</block>
  10 + <view class="more view"></view>
  11 + </view>
  12 + <block wx:for="{{tags}}" wx:key="tagskey">
  13 + <view class="view cu-tag round {{item.active?'bg-blue light':''}}"
  14 + bindtap="tagsChange"
  15 + data-id="{{item.id}}">{{item.name}}</view>
  16 + </block>
  17 + <view class="view cu-tag round {{filterOpened?'opened text-blue':''}} {{filterParams.consumeStr?'bg-blue light':''}}" bindtap="filterShow">
  18 + {{filterParams.consumeStr?filterParams.consumeStr:'筛选'}}
  19 + <view class="more view"></view>
  20 + </view>
  21 + </view>
  22 + <view class="opened-block bg-white" catchtap="catchtap">
  23 + <caixi multiArray="{{multiArray}}" multiIndex="{{multiIndex}}"
  24 + bindactive="caixiActive" id="caixi"
  25 + ></caixi>
  26 + <filter id="filter" bindevent="filterEvent"></filter>
  27 + </view>
  28 +</view>
  1 +/* components/2.0/filter/filter-group.wxss */
  2 +@import "../../../colorui/main.wxss";
  3 +
  4 +.cu-tag+.cu-tag{
  5 + margin-left: 20rpx;
  6 +}
  7 +.more{
  8 + background-image: url("http://nosqn.colorcun.com/2.0/home%20%2815%29.png");
  9 + width: 12rpx;
  10 + height: 6rpx;
  11 + margin-left: 6rpx;
  12 +}
  13 +.light .more{
  14 + background-image: url("http://nosqn.colorcun.com/2.0/home%20%2814%29.png");
  15 +}
  16 +.opened .more{
  17 + background-image: url("http://nosqn.colorcun.com/2.0/home%20%2813%29.png");
  18 +}
  19 +.opened-block{
  20 + position: relative;
  21 +}
  22 +.filter-group-view{
  23 + position: relative;
  24 + z-index: 10000;
  25 +}
  26 +.filter-group{
  27 + position: relative;
  28 + z-index: 10000;
  29 + overflow-x: auto;
  30 +}
  31 +.filter-group:after{
  32 + display: block;
  33 + content: "";
  34 + min-width: 40rpx;
  35 + height: 40rpx;
  36 +}
  37 +.filter-group-opened{}
  38 +.mask:before{
  39 + content: "";
  40 + display: block;
  41 + position: absolute;
  42 + bottom: 0;
  43 + width: 100%;
  44 + height: calc(100% - 120rpx);
  45 + background-color: rgba(0,0,0,0.5);
  46 +}
  1 +// components/reserve/search/filter.js
  2 +import util from '../../../utils/util'
  3 +Component({
  4 + /**
  5 + * 组件的属性列表
  6 + */
  7 + properties: {
  8 +
  9 + },
  10 +
  11 + /**
  12 + * 组件的初始数据
  13 + */
  14 + data: {
  15 + consumeStr:'',
  16 + hasDisplay:false,
  17 + },
  18 + attached(){
  19 + this.min=0
  20 + this.max=300
  21 + },
  22 + /**
  23 + * 组件的方法列表
  24 + */
  25 + methods: {
  26 + consumeEvent(e){
  27 + console.log('consumeEvent',e)
  28 + let data={
  29 + hasChange:true,
  30 + }
  31 + if(e.detail.type=='once'){
  32 + this.min=e.detail.min
  33 + this.max=e.detail.max
  34 + }else{
  35 + this[e.detail.type]=e.detail.value
  36 + }
  37 + let consumeStr=''
  38 + if(this.min==0){
  39 + if(this.max>this.min){
  40 + consumeStr='¥'+this.max+'以下'
  41 + }
  42 + }else{
  43 + if(this.min<300){
  44 + consumeStr='¥'+this.min+'-'+this.max
  45 + }else{
  46 + consumeStr='¥'+this.min+'以上'
  47 + }
  48 + }
  49 + let obj={
  50 + consumeStr:consumeStr,
  51 + }
  52 + if(e.detail.type!='once'){
  53 + obj.active=''
  54 + }
  55 + this.setData(obj)
  56 + },
  57 + changeVal(e){
  58 + let active=util.attr(e,'val')
  59 + let val=active.split(',')
  60 + this.min=val[0]
  61 + this.max=val[1]
  62 + this.setData({
  63 + active:active,
  64 + })
  65 + this.selectComponent('#consume').changeVal(this.min,this.max);
  66 + },
  67 + hide(){
  68 + this.setData({
  69 + hasDisplay:false,
  70 + })
  71 + },
  72 + show(filterParams=null){
  73 + let obj={
  74 + hasDisplay:true,
  75 + }
  76 + if(filterParams){
  77 + if(filterParams.active){
  78 + obj.active=filterParams.active
  79 + }
  80 + this.min=filterParams.min
  81 + this.max=filterParams.max
  82 + obj.consumeStr=filterParams.consumeStr||''
  83 + }
  84 + this.setData(obj)
  85 + if(filterParams){
  86 + setTimeout(()=>{
  87 + this.selectComponent('#consume').changeVal(this.min,this.max);
  88 + },0)
  89 + }else{
  90 + setTimeout(()=>{
  91 + this.selectComponent('#consume').changeVal(0,300);
  92 + this.setData({
  93 + active:'',
  94 + consumeStr:'',
  95 + })
  96 + },0)
  97 + }
  98 + },
  99 + submit(){
  100 + this.triggerEvent('event',{
  101 + type:'set',
  102 + data:{
  103 + consumeStr:this.data.consumeStr||'',
  104 + min:this.min,
  105 + max:this.max,
  106 + active:this.data.active||'',
  107 + },
  108 + })
  109 + this.hide()
  110 + },
  111 + reset(){
  112 + this.selectComponent('#consume').changeVal(0,300);
  113 + this.setData({
  114 + active:'',
  115 + consumeStr:'',
  116 + })
  117 + this.triggerEvent('event',{type:'clean'})
  118 + this.hide()
  119 + },
  120 + }
  121 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {
  4 + "consume":"/components/stat/zyslider"
  5 + }
  6 +}
  1 +<!--components/reserve/search/filter.wxml-->
  2 +<view class="filter {{hasDisplay?'animation-slide-top':''}}" catchtap="catchtap" wx:if="{{hasDisplay}}">
  3 + <view class="part flex-ll">
  4 + 人均消费
  5 + <view class="txt" wx:if="{{consumeStr}}">{{consumeStr}}</view>
  6 + </view>
  7 + <view class="flex-lr tips">
  8 + <view class="content">¥0</view>
  9 + <view class="content">¥300以上</view>
  10 + </view>
  11 + <view class="consume flex-vc">
  12 + <consume style="width:99%;" id="consume"
  13 + cla="slider20"
  14 + minValue="0" maxValue="300" min="0" max="300"
  15 + step="10"
  16 + blockColor="#ffffff"
  17 + backgroundColor="#D8D8D8"
  18 + selectedColor="#42A5FF"
  19 + bindevent="consumeEvent">
  20 + </consume>
  21 + </view>
  22 + <view class="flex-lr split">
  23 + <view class="item {{active=='0,100'?'active':''}}" bindtap="changeVal" data-val="0,100">¥100以下</view>
  24 + <view class="item {{active=='100,200'?'active':''}}" bindtap="changeVal" data-val="100,200">¥100-200</view>
  25 + <view class="item {{active=='200,300'?'active':''}}" bindtap="changeVal" data-val="200,300">¥200-300</view>
  26 + <view class="item {{active=='300,300'?'active':''}}" bindtap="changeVal" data-val="300,300">¥300以上</view>
  27 + </view>
  28 + <view class="flex-lr buttons">
  29 + <view class="reset" bindtap="reset">重置</view>
  30 + <view class="submit" bindtap="submit">完成</view>
  31 + </view>
  32 +</view>
  33 +