hjr před 3 měsíci
rodič
revize
d26ee4d926

+ 2 - 2
package-lock.json

@@ -1,11 +1,11 @@
 {
-  "name": "quickapp-code-book",
+  "name": "quickapp-code-books",
   "version": "1.0.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
-      "name": "quickapp-code-book",
+      "name": "quickapp-code-books",
       "version": "1.0.0",
       "dependencies": {
         "apex-ui": "latest"

+ 1 - 1
package.json

@@ -1,5 +1,5 @@
 {
-  "name": "quickapp-code-book",
+  "name": "quickapp-code-books",
   "version": "1.0.0",
   "description": "快应用图书模版",
   "scripts": {

binární
src/assets/images/index_banner.jpg


+ 677 - 0
src/assets/styles/flex.css

@@ -0,0 +1,677 @@
+
+/**/
+:root {
+    position: relative;
+    font-size: 1px;
+}
+
+header,
+footer,
+div,
+p,
+ul,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    display: block;
+}
+
+div,
+p,
+ul,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+label {
+    padding: 0;
+    margin: 0;
+}
+.scrollbar-hidden ::-webkit-scrollbar {
+    display: none;
+}
+.scrollbar-hidden ::-moz-scrollbar {
+    display: none;
+}
+.scrollbar-hidden ::-ms-scrollbar {
+    display: none;
+}
+.scrollbar-hidden ::-o-scrollbar {
+    display: none;
+}
+
+/* #ifndef MP-WEIXIN */
+
+* {
+    padding: 0;
+    margin: 0;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    -ms-box-sizing: border-box;
+    -o-box-sizing: border-box;
+    box-sizing: border-box;
+    border: 0;
+    outline: 0;
+    font-size: 100%;
+    vertical-align: baseline;
+    background: transparent;
+    outline-style: none;
+}
+
+*::before {
+    box-sizing: border-box;
+}
+/* #endif */
+
+html {
+    width: 100%;
+}
+
+body {
+    font-size: 14px;
+    color: #333;
+    position: relative;
+    line-height: 1;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+ol,
+ul,
+li {
+    list-style: none;
+}
+
+a,
+a:hover,
+a:focus {
+    color: inherit;
+    text-decoration: none;
+    outline-style: none;
+    /*FF*/
+}
+
+/*css为clearfix,清除浮动*/
+.clearfix {
+    /* zoom: 1; */
+    /*IE/7/6*/
+    zoom: 1;
+    /*IE/7/6*/
+}
+
+.clearfix::before,
+.clearfix::after {
+    content: "";
+    height: 0;
+    line-height: 0;
+    display: block;
+    visibility: hidden;
+    clear: both;
+}
+
+.clearfix:after {
+    content: "";
+    height: 0;
+    line-height: 0;
+    display: block;
+    visibility: hidden;
+    clear: both;
+}
+
+.clearfix:after {
+    clear: both;
+}
+
+img {
+    z-index: 0;
+}
+
+/*文本对齐*/
+.ta_right {
+    text-align: right;
+}
+
+.ta_center {
+    text-align: center;
+}
+
+.ta_justify {
+    text-align: justify;
+}
+
+/*隐藏*/
+.hide {
+    display: none !important;
+}
+
+/*字颜色*/
+.icon {
+    font-size: inherit;
+}
+
+.fc_3 {
+    color: #333;
+}
+
+.fc_6 {
+    color: #666;
+}
+
+.fc_9 {
+    color: #999;
+}
+
+/*背景*/
+.bg_fff {
+    background-color: #fff;
+}
+
+/*移动*/
+.late_xy {
+    -webkit-transform: translate(-50%, -50%);
+    -moz-transform: translate(-50%, -50%);
+    -o-transform: translate(-50%, -50%);
+    -ms-transform: translate(-50%, -50%);
+    transform: translate(-50%, -50%);
+}
+
+.late_x {
+    -webkit-transform: translateX(-50%);
+    -moz-transform: translateX(-50%);
+    -o-transform: translateX(-50%);
+    -ms-transform: translateX(-50%);
+    transform: translateX(-50%);
+}
+
+.late_y {
+    -webkit-transform: translateY(-50%);
+    -moz-transform: translateY(-50%);
+    -o-transform: translateY(-50%);
+    -ms-transform: translateY(-50%);
+    transform: translateY(-50%);
+}
+
+/*定位*/
+.abs {
+    position: absolute;
+}
+
+.rel {
+    position: relative;
+}
+
+.fixed {
+    position: fixed;
+}
+
+/*垂直居中*/
+.abs_xy {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    -webkit-transform: translate(-50%, -50%);
+    -moz-transform: translate(-50%, -50%);
+    -o-transform: translate(-50%, -50%);
+    -ms-transform: translate(-50%, -50%);
+    transform: translate(-50%, -50%);
+}
+
+.fiexd_xy {
+    position: fixed;
+    top: 50%;
+    left: 50%;
+    -webkit-transform: translate(-50%, -50%);
+    -moz-transform: translate(-50%, -50%);
+    -o-transform: translate(-50%, -50%);
+    -ms-transform: translate(-50%, -50%);
+    transform: translate(-50%, -50%);
+}
+
+.abs_x {
+    position: absolute;
+    left: 50%;
+    -webkit-transform: translate(-50%, 0%);
+    -moz-transform: translate(-50%, 0%);
+    -o-transform: translate(-50%, 0%);
+    -ms-transform: translate(-50%, 0%);
+    transform: translate(-50%, 0%);
+}
+
+.abs_y {
+    position: absolute;
+    top: 50%;
+    -webkit-transform: translate(0%, -50%);
+    -moz-transform: translate(0%, -50%);
+    -o-transform: translate(0%, -50%);
+    -ms-transform: translate(0%, -50%);
+    transform: translate(0%, -50%);
+}
+
+.fixed_x {
+    position: fixed;
+    left: 50%;
+    -webkit-transform: translate(-50%, 0%);
+    -moz-transform: translate(-50%, 0%);
+    -o-transform: translate(-50%, 0%);
+    -ms-transform: translate(-50%, 0%);
+    transform: translate(-50%, 0%);
+}
+
+.fixed_y {
+    position: fixed;
+    top: 50%;
+    -webkit-transform: translate(0%, -50%);
+    -moz-transform: translate(0%, -50%);
+    -o-transform: translate(0%, -50%);
+    -ms-transform: translate(0%, -50%);
+    transform: translate(0%, -50%);
+}
+
+.abs_center {
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    margin: auto;
+}
+
+.fixed_center {
+    position: fixed;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    margin: auto;
+}
+
+/*行省略*/
+/*-webkit-,-moz-,-o-,-ms-*/
+.line_one {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.line_1 {
+    display: -webkit-box;
+    display: -moz-box;
+    display: -ms-box;
+    display: -o-box;
+    -webkit-box-orient: vertical;
+    -moz-box-orient: vertical;
+    -ms-box-orient: vertical;
+    -o-box-orient: vertical;
+    box-orient: vertical;
+    -webkit-line-clamp: 1;
+    -moz-line-clamp: 1;
+    -ms-line-clamp: 1;
+    -o-line-clamp: 1;
+    line-clamp: 1;
+    overflow: hidden;
+}
+
+.line_2 {
+    display: -webkit-box;
+    display: -moz-box;
+    display: -ms-box;
+    display: -o-box;
+    -webkit-box-orient: vertical;
+    -moz-box-orient: vertical;
+    -ms-box-orient: vertical;
+    -o-box-orient: vertical;
+    box-orient: vertical;
+    -webkit-line-clamp: 2;
+    -moz-line-clamp: 2;
+    -ms-line-clamp: 2;
+    -o-line-clamp: 2;
+    line-clamp: 2;
+    overflow: hidden;
+}
+
+.line_3 {
+    display: -webkit-box;
+    display: -moz-box;
+    display: -ms-box;
+    display: -o-box;
+    -webkit-box-orient: vertical;
+    -moz-box-orient: vertical;
+    -ms-box-orient: vertical;
+    -o-box-orient: vertical;
+    box-orient: vertical;
+    -webkit-line-clamp: 3;
+    -moz-line-clamp: 3;
+    -ms-line-clamp: 3;
+    -o-line-clamp: 3;
+    line-clamp: 3;
+    overflow: hidden;
+}
+
+.line_4 {
+    display: -webkit-box;
+    display: -moz-box;
+    display: -ms-box;
+    display: -o-box;
+    -webkit-box-orient: vertical;
+    -moz-box-orient: vertical;
+    -ms-box-orient: vertical;
+    -o-box-orient: vertical;
+    box-orient: vertical;
+    -webkit-line-clamp: 4;
+    -moz-line-clamp: 4;
+    -ms-line-clamp: 4;
+    -o-line-clamp: 4;
+    line-clamp: 4;
+    overflow: hidden;
+}
+
+.line_5 {
+    display: -webkit-box;
+    display: -moz-box;
+    display: -ms-box;
+    display: -o-box;
+    -webkit-box-orient: vertical;
+    -moz-box-orient: vertical;
+    -ms-box-orient: vertical;
+    -o-box-orient: vertical;
+    box-orient: vertical;
+    -webkit-line-clamp: 5;
+    -moz-line-clamp: 5;
+    -ms-line-clamp: 5;
+    -o-line-clamp: 5;
+    line-clamp: 5;
+    overflow: hidden;
+}
+
+/*block*/
+.block {
+    display: block;
+}
+
+.inblock {
+    display: inline-block;
+}
+
+/*Flexible Box*/
+.flex {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -moz-box;
+    display: -ms-flexbox;
+    display: flex;
+}
+
+.inflex {
+    display: inline-box !important;
+    display: -webkit-inline-box !important;
+    display: -webkit-inline-flex !important;
+    display: -moz-box !important;
+    display: -ms-inline-flexbox !important;
+    display: inline-flex !important;
+}
+
+/*单轴*/
+.ai_center {
+    -webkit-align-items: center;
+    -moz-align-items: center;
+    -ms-align-items: center;
+    -o-align-items: center;
+    align-items: center;
+}
+
+.ai_start {
+    /*默认*/
+    -webkit-align-items: flex-start;
+    -moz-align-items: flex-start;
+    -ms-align-items: flex-start;
+    -o-align-items: flex-start;
+    align-items: flex-start;
+}
+
+.ai_end {
+    -webkit-align-items: flex-end;
+    -moz-align-items: flex-end;
+    -ms-align-items: flex-end;
+    -o-align-items: flex-end;
+    align-items: flex-end;
+}
+
+.ai_base {
+    -webkit-align-items: baseline;
+    -moz-align-items: baseline;
+    -ms-align-items: baseline;
+    -o-align-items: baseline;
+    align-items: baseline;
+}
+
+.ai_stretch {
+    -webkit-align-items: stretch;
+    -moz-align-items: stretch;
+    -ms-align-items: stretch;
+    -o-align-items: stretch;
+    align-items: stretch;
+}
+
+/*左右对齐*/
+.jc_center {
+    -webkit-justify-content: center;
+    -moz-justify-content: center;
+    -ms-justify-content: center;
+    -o-justify-content: center;
+    justify-content: center;
+}
+
+.jc_between {
+    -webkit-justify-content: space-between;
+    -moz-justify-content: space-between;
+    -ms-justify-content: space-between;
+    -o-justify-content: space-between;
+    justify-content: space-between;
+}
+
+.jc_around {
+    -webkit-justify-content: space-around;
+    -moz-justify-content: space-around;
+    -ms-justify-content: space-around;
+    -o-justify-content: space-around;
+    justify-content: space-around;
+}
+
+.jc_end {
+    -webkit-justify-content: flex-end;
+    -moz-justify-content: flex-end;
+    -ms-justify-content: flex-end;
+    -o-justify-content: flex-end;
+    justify-content: flex-end;
+}
+
+/*换行方式*/
+.fw_no {
+    -webkit-flex-wrap: nowrap;
+    -moz-flex-wrap: nowrap;
+    -ms-flex-wrap: nowrap;
+    -o-flex-wrap: nowrap;
+    flex-wrap: nowrap;
+}
+
+.fw_wrap {
+    -webkit-flex-wrap: wrap;
+    -moz-flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    -o-flex-wrap: wrap;
+    flex-wrap: wrap;
+}
+
+.fw_reverse {
+    -webkit-flex-wrap: wrap-reverse;
+    -moz-flex-wrap: wrap-reverse;
+    -ms-flex-wrap: wrap-reverse;
+    -o-flex-wrap: wrap-reverse;
+    flex-wrap: wrap-reverse;
+}
+
+/*多轴 上中下对齐方式*/
+.ac_center {
+    -webkit-align-content: center;
+    -moz-align-content: center;
+    -ms-align-content: center;
+    -o-align-content: center;
+    align-content: center;
+}
+
+.ac_start {
+    -webkit-align-content: flex-start;
+    -moz-align-content: flex-start;
+    -ms-align-content: flex-start;
+    -o-align-content: flex-start;
+    align-content: flex-start;
+}
+
+.ac_end {
+    -webkit-align-content: flex-end;
+    -moz-align-content: flex-end;
+    -ms-align-content: flex-end;
+    -o-align-content: flex-end;
+    align-content: flex-end;
+}
+
+.ac_between {
+    -webkit-align-content: space-between;
+    -moz-align-content: space-between;
+    -ms-align-content: space-between;
+    -o-align-content: space-between;
+    align-content: space-between;
+}
+
+.ac_around {
+    -webkit-align-content: space-around;
+    -moz-align-content: space-around;
+    -ms-align-content: space-around;
+    -o-align-content: space-around;
+    align-content: space-around;
+}
+
+.ac_stretch {
+    -webkit-align-content: stretch;
+    -moz-align-content: stretch;
+    -ms-align-content: stretch;
+    -o-align-content: stretch;
+    align-content: stretch;
+}
+
+/*主轴的方向*/
+.fd_r {
+    -webkit-flex-direction: row;
+    -moz-flex-direction: row;
+    -ms-flex-direction: row;
+    -o-flex-direction: row;
+    flex-direction: row;
+}
+
+.fd_rr {
+    -webkit-flex-direction: row-reverse;
+    -moz-flex-direction: row-reverse;
+    -ms-flex-direction: row-reverse;
+    -o-flex-direction: row-reverse;
+    flex-direction: row-reverse;
+}
+
+.fd_c {
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+}
+
+.fd_cr {
+    -webkit-flex-direction: column-reverse;
+    -moz-flex-direction: column-reverse;
+    -ms-flex-direction: column-reverse;
+    -o-flex-direction: column-reverse;
+    flex-direction: column-reverse;
+}
+
+/*项目属性*/
+.flex1 {
+    -prefix-box-flex: 1;
+    -webkit-box-flex: 1;
+    -webkit-flex: 1;
+    -moz-box-flex: 1;
+    -ms-flex: 1;
+    flex: 1;
+}
+.flex2 {
+    -prefix-box-flex: 2;
+    -webkit-box-flex: 2;
+    -webkit-flex: 2;
+    -moz-box-flex: 2;
+    -ms-flex: 2;
+    flex: 2;
+}
+
+.as_auto {
+    -webkit-align-self: auto;
+    -moz-align-self: auto;
+    -ms-align-self: auto;
+    -o-align-self: auto;
+    align-self: auto;
+}
+
+.as_center {
+    -webkit-align-self: center;
+    -moz-align-self: center;
+    -ms-align-self: center;
+    -o-align-self: center;
+    align-self: center;
+}
+
+.as_start {
+    -webkit-align-self: flex-start;
+    -moz-align-self: flex-start;
+    -ms-align-self: flex-start;
+    -o-align-self: flex-start;
+    align-self: flex-start;
+}
+
+.as_end {
+    -webkit-align-self: flex-end;
+    -moz-align-self: flex-end;
+    -ms-align-self: flex-end;
+    -o-align-self: flex-end;
+    align-self: flex-end;
+}
+
+.as_base {
+    -webkit-align-self: baseline;
+    -moz-align-self: baseline;
+    -ms-align-self: baseline;
+    -o-align-self: baseline;
+    align-self: baseline;
+}
+
+.as_stretch {
+    -webkit-align-self: stretch;
+    -moz-align-self: stretch;
+    -ms-align-self: stretch;
+    -o-align-self: stretch;
+    align-self: stretch;;
+}
+
+/* 是否允许子元素伸缩 */
+.flex-item {
+    flex-grow: 1;;
+}
+
+/* 子元素的显示次序 */
+.flex-order {
+    order: 1;;
+}
+
+/**/

+ 2671 - 0
src/assets/styles/fui.css

@@ -0,0 +1,2671 @@
+/* cursor */
+.cursor {
+	cursor: pointer;
+}
+.cursor-none {
+	cursor: none;
+}
+.cursor-move {
+	cursor: move;
+}
+.cursor-default{
+	cursor: default;
+}
+
+/* 主色调 */
+.text-ff3c00 {
+	color: #FF3C00;
+}
+.text-EE8030{
+	color: #EE8030;
+}
+.text-fc2419{
+	color: #fc2419;
+}
+.text-FC3636{
+	color: #FC3636;
+}
+.text-white, .text-color-white {
+	color: #FFFFFF;
+}
+.text-black {
+	color: #333333;
+}
+.text-gray  {
+	color: #999999;
+}
+.text-000 {
+	color: #000000;
+}
+.text-000-05 {
+	color: rgba(0, 0, 0, 0.5);
+}
+.text-000-06 {
+	color: rgba(0, 0, 0, 0.6);
+}
+.text-000-07 {
+	color: rgba(0, 0, 0, 0.7);
+}
+.text-255-07 {
+	color: rgba(255, 255, 255, 0.7);
+}
+.text-111 {
+	color: #111111;
+}
+.text-222 {
+	color: #222222;
+}
+.text-333, .text-color-333 {
+	color: #333333;
+}
+.text-444 {
+	color: #444444;
+}
+.text-555 {
+	color: #555555;
+}
+.text-666, .text-color-666 {
+	color: #666666;
+}
+.text-777 {
+	color: #777777;
+}
+.text-888 {
+	color: #888888;
+}
+.text-999, .text-color-999 {
+	color: #999999;
+}
+.text-aaa {
+	color: #aaaaaa;
+}
+.text-bbb {
+	color: #bbbbbb;
+}
+.text-ccc {
+	color: #cccccc;
+}
+.text-ddd {
+	color: #dddddd;
+}
+.text-eee {
+	color: #eeeeee;
+}
+.text-ff782f {
+	color: #ff782f;
+}
+.text-ffa74f{
+	color: #ffa74f;
+}
+.text-fdb66f{
+	color: #fdb66f;
+}
+.text-808181{
+	color: #808181;
+}
+.text-da251c {
+	color: #DA251C;
+}
+.text-skyblue {
+	color: skyblue;
+}
+.text-856404{
+	color: #856404;
+}
+.text-2283ee{
+	color: #2283ee;
+}
+/* #ifndef APP-PLUS-NVUE */
+.text-color-initial {
+	color: initial;
+}
+.text-decoration-line{
+	text-decoration: line-through;
+}
+/* #endif */
+
+/* hover */
+.hover, .hover-o {
+	opacity: .8;
+}
+.hover-gray {
+	background-color: rgba(0, 0, 0, .06); opacity: .8;
+}
+.place {
+	color: #999999;
+}
+/* 背景色调 */
+.bg-primary-01 {
+	background-color: rgba(218, 37, 28, .1);
+}
+.bg-border {
+	background-color: #F7F8F9;
+}
+.bg-white {
+	background-color: #FFFFFF;
+}
+.bg-dark, .bg-000 {
+	background-color: #000000;
+}
+.bg-000-04{
+	background-color: rgba(0,0,0,0.4);
+}
+.bg-000-05{
+	background-color: rgba(0,0,0,0.5);
+}
+.bg-black, .bg-333 {
+	background-color: #333333;
+}
+.bg-fafafc{
+	background-color: #fafafc;
+}
+.bg-ffffff-fafafc{
+	background: linear-gradient(#ffffff 0%,#fafafc 20%,#fafafc);
+}
+.bg-FF382E{
+	background-color: #FF382E;
+}
+.bg-d9d9d9{
+	background-color: #d9d9d9;
+}
+.bg-ee803033{
+	background: #ee803033;
+}
+.bg-444 {
+	background-color: #444444;
+}
+.bg-555 {
+	background-color: #555555;
+}
+.bg-666 {
+	background-color: #666666;
+}
+.bg-777 {
+	background-color: #777777;
+}
+.bg-888 {
+	background-color: #888888;
+}
+.bg-999 {
+	background-color: #999999;
+}
+.bg-aaa {
+	background-color: #aaaaaa;
+}
+.bg-eee {
+	background-color: #eeeeee;
+}
+.bg-gray {
+	background-color: #F8F8F8;
+}
+.bg-light-gray {
+	background-color: #F7F8F9;
+}
+.bg-gray-hover-color {
+	background-color: rgba(0, 0, 0, .02);
+}
+.bg-mask {
+	background-color: rgba(0, 0, 0, .5);
+}
+.bg-tt {
+	background-color: transparent;
+}
+.bg-blue {
+	background-color: blue;
+}
+.bg-white-0_5 {
+	background-color: rgba(255, 255, 255, .5);
+}
+.bg-white-1a {
+	background-color: #ffffff1a;
+}
+.bg-fc9804 {
+	background-color: #fc9804;
+}
+.bg-fff3cd {
+	background-color: #fff3cd;
+}
+.bg-ff3c00 {
+	background-color: #FF3C00;
+}
+.bg-da251c {
+	background-color: #da251c;
+}
+.bg-f8f8f8 {
+	background-color: #f8f8f8;
+}
+.bg-f9f9f9 {
+	background-color: #f9f9f9;
+}
+.bg-cd231a {
+	background-color: #cd231a;
+}
+.bg-fffae5 {
+	background-color: #fffae5;
+}
+.bg-ffed46 {
+	background-color: #FFED46;
+}
+.bg-8CA937{
+	background-color: #8CA937;
+}
+/* 阴影 */
+.box-shadow-0-4-20-04{
+	box-shadow: 0px 4rpx 20rpx 0px rgba(0, 0, 0, 0.04);
+}
+.box-shadow-0-4-30-02{
+	box-shadow: 0px 4rpx 20rpx 0px rgba(0, 0, 0, 0.02);
+}
+.bos-shadow-0-72-128-04 {
+	box-shadow: 0 72rpx 128rpx 0 rgba(0, 0, 0, 0.04);
+}
+
+/* 字号 */
+.text-b {
+	font-weight: bold;
+}
+.text-100 {
+	font-weight: 100;
+}
+.text-200 {
+	font-weight: 200;
+}
+.text-300 {
+	font-weight: 300;
+}
+.text-400 {
+	font-weight: 400;
+}
+.text-500 {
+	font-weight: 500;
+}
+.text-600 {
+	font-weight: 600;
+}
+.text-700 {
+	font-weight: 700;
+}
+.text-800 {
+	font-weight: 800;
+}
+.text-12 {
+	font-size: 12rpx;
+}
+.text-16 {
+	font-size: 16rpx;
+}
+.text-20 {
+	font-size: 20rpx;
+}
+.text-22 {
+	font-size: 22rpx;
+}
+.text-24 {
+	font-size: 24rpx;
+}
+.text-26 {
+	font-size: 26rpx;
+}
+.text-28 {
+	font-size: 28rpx;
+}
+.text-30 {
+	font-size: 30rpx;
+}
+.text-32 {
+	font-size: 32rpx;
+}
+.text-34 {
+	font-size: 34rpx;
+}
+.text-36 {
+	font-size: 36rpx;
+}
+.text-40 {
+	font-size: 40rpx;
+}
+.text-42 {
+	font-size: 42rpx;
+}
+.text-44 {
+	font-size: 44rpx;
+}
+.text-48 {
+	font-size: 48rpx;
+}
+.text-52 {
+	font-size: 52rpx;
+}
+.text-54 {
+	font-size: 54rpx;
+}
+.text-56 {
+	font-size: 56rpx;
+}
+.text-58 {
+	font-size: 58rpx;
+}
+.text-60 {
+	font-size: 60rpx;
+}
+.text-62 {
+	font-size: 62rpx;
+}
+.text-64 {
+	font-size: 64rpx;
+}
+.text-68 {
+	font-size: 68rpx;
+}
+.text-70 {
+	font-size: 70rpx;
+}
+
+.text-underline {
+	text-decoration: underline;
+}
+.text-through {
+	text-decoration: line-through;
+}
+/* 字体对齐 */
+.text-left {
+	text-align: left;
+}
+.text-center {
+	text-align: center;
+}
+.text-right {
+	text-align: right;
+}
+/* 字体缩进2个字符 */
+.text-indent {
+	text-indent: 2em;
+}
+/* #ifndef APP-PLUS-NVUE */
+.text-justify {
+	text-align: justify;
+}
+.va-center {
+	vertical-align: center;
+}
+.va-top {
+	vertical-align: top;
+}
+.va-bottom {
+	vertical-align: bottom;
+}
+/* #endif */
+
+/* 透明 */ 
+.op-0 {
+	opacity: 0;
+}
+.op-02 {
+	opacity: 0.2;
+}
+.op-04 {
+	opacity: 0.4;
+}
+.op-05 {
+	opacity: 0.5;
+}
+.op-08 {
+	opacity: 0.8;
+}
+.op-1 {
+	opacity: 1;
+}
+/* 隐藏 */
+.ov-hide {
+	overflow: hidden;
+}
+/* #ifndef APP-PLUS-NVUE */
+.vi-hide {
+	visibility: hidden;
+}
+/* #endif */
+
+
+/* 定位 */
+.p-abs, .abs {
+	position: absolute;
+}
+.abs_xy {
+	position: absolute; top: 50%; left: 50%; transform:  translate(-50%, -50%);
+}
+.abs_auto {
+	position: absolute; top: 0; left: 0; bottom: 0; right: 0; 
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.abs_top {
+	position: absolute; top: 0; left: 0; right: 0;
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.abs_left {
+	position: absolute; top: 0; left: 0; bottom: 0;
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.abs_right {
+	position: absolute; top: 0; bottom: 0; right: 0;
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.abs_bottom {
+	position: absolute; bottom: 0; left: 0; right: 0;
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.abs_center {
+	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
+}
+.abs_x {
+	position: absolute; left: 50%; transform: translateX(-50%);
+}
+.abs_y {
+	position: absolute; top: 50%; transform: translateY(-50%);
+}
+.p-fixed, .fixed {
+	position: fixed;
+}
+.fixed_auto {
+	position: fixed; top: 0; left: 0; bottom: 0; right: 0; 
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.fixed_center, .fixed_xy {
+	position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
+}
+.fixed_x {
+	position: fixed; left: 50%; transform: translateX(-50%);
+}
+.fixed_y {
+	position: fixed; top: 50%; transform: translateY(-50%);
+}
+.fixed_bottom {
+	position: fixed; 
+	bottom: var(--window-bottom);
+	bottom: calc(constant(safe-area-inset-bottom));
+	bottom: calc(env(safe-area-inset-bottom));
+}
+.fixed_top {
+	position: fixed; top: var(--window-top);
+}
+.fixed_left {
+	position: fixed; left: 0;
+}
+.fixed_right {
+	position: fixed; right: 0;
+}
+.fixed_low {
+	position: fixed; bottom: 0; left: 0; right: 0; 
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.fixed_up {
+	position: fixed; top: 0; left: 0; right: 0; 
+	/* #ifndef APP-PLUS-NVUE */
+	margin: auto;
+	/* #endif */
+}
+.p-rel, .rel {
+	position: relative;
+}
+.p-sticky, .sticky {
+	position: sticky;
+}
+.bottom, .bottom-0 {
+	bottom: 0;
+}
+.bottom-w {
+	bottom: var(--window-bottom);
+}
+.bottom-10 {
+	bottom: 10rpx;
+}
+.bottom-20 {
+	bottom: 20rpx;
+}
+.bottom-30 {
+	bottom: 30rpx;
+}
+.bottom-40 {
+	bottom: 40rpx;
+}
+.bottom-50 {
+	bottom: 50rpx;
+}
+.bottom-60 {
+	bottom: 60rpx;
+}
+.bottom-70 {
+	bottom: 70rpx;
+}
+.bottom-80 {
+	bottom: 80rpx;
+}
+.bottom-90 {
+	bottom: 90rpx;
+}
+.bottom-100 {
+	bottom: 100rpx;
+}
+.bottom-150 {
+	bottom: 150rpx;
+}
+.bottom-180px {
+	bottom: 180px;
+}
+.bottom-200 {
+	bottom: 200rpx;
+}
+.bottom-260px{
+	bottom:260px;
+}
+.bottom-300 {
+	bottom: 300rpx;
+}
+.bottom-350 {
+	bottom: 350rpx;
+}
+.bottom_100{
+	bottom: 100vh;
+}
+.left, .left-0 {
+	left: 0;
+}
+.top, .top-0 {
+	top: 0;
+}
+.top-10 {
+	top: 10rpx;
+}
+.top-20 {
+	top: 20rpx;
+}
+.top-30 {
+	top: 30rpx;
+}
+.top-40 {
+	top: 40rpx;
+}
+.top-50 {
+	top: 50rpx;
+}
+.top-60 {
+	top: 60rpx;
+}
+.top-70 {
+	top: 70rpx;
+}
+.top-80 {
+	top: 80rpx;
+}
+.top-90 {
+	top: 90rpx;
+}
+.top-100 {
+	top: 100rpx;
+}
+.top-200 {
+	top: 200rpx;
+}
+.left-10 {
+	left: 10rpx;
+}
+.left-20 {
+	left: 20rpx;
+}
+.left-30 {
+	left: 30rpx;
+}
+.left-40 {
+	left: 40rpx;
+}
+.left-50 {
+	left: 50rpx;
+}
+.left-60 {
+	left: 60rpx;
+}
+.left-70 {
+	left: 70rpx;
+}
+.left-80 {
+	left: 80rpx;
+}
+.left-90 {
+	left: 90rpx;
+}
+.left-100 {
+	left: 100rpx;
+}
+.left-300 {
+	left: 300rpx;
+}
+.right, .right-0 {
+	right: 0;
+}
+.right-10 {
+	right: 10rpx;
+}
+.right-20 {
+	right: 20rpx;
+}
+.right-30 {
+	right: 30rpx;
+}
+.right-40 {
+	right: 40rpx;
+}
+.right-50 {
+	right: 50rpx;
+}
+.right-60 {
+	right: 60rpx;
+}
+.right-70 {
+	right: 70rpx;
+}
+.right-80 {
+	right: 80rpx;
+}
+.right-90 {
+	right: 90rpx;
+}
+.right-100 {
+	right: 100rpx;
+}
+/* 层级 */
+.zindex-0 {
+	z-index: 0;
+}
+.zindex-1 {
+	z-index: 1;
+}
+.zindex-2 {
+	z-index: 2;
+}
+.zindex-3 {
+	z-index: 3;
+}
+.zindex-4 {
+	z-index: 4;
+}
+.zindex-5 {
+	z-index: 5;
+}
+.zindex-6 {
+	z-index: 6;
+}
+.zindex-7 {
+	z-index: 7;
+}
+.zindex-8 {
+	z-index: 8;
+}
+.zindex-9 {
+	z-index: 9;
+}
+.zindex-10 {
+	z-index: 10;
+}
+.zindex-99 {
+	z-index: 99;
+}
+.zindex-100 {
+	z-index: 100;
+}
+.zindex-101 {
+	z-index: 101;
+}
+.zindex-200 {
+	z-index: 200;
+}
+.zindex-300 {
+	z-index: 300;
+}
+.zindex-400 {
+	z-index: 400;
+}
+.zindex-500 {
+	z-index: 500;
+}
+.zindex-999 {
+	z-index: 999;
+}
+.zindex-1000 {
+	z-index: 1000;
+}
+.zindex-1001 {
+	z-index: 1001;
+}
+.zindex-2000 {
+	z-index: 2000;
+}
+.zindex-2001 {
+	z-index: 2001;
+}
+.zindex-3000 {
+	z-index: 3000;
+}
+.zindex-3001 {
+	z-index: 3001;
+}
+.zindex-9999 {
+	z-index: 9999;
+}
+.zindex-10000 {
+	z-index: 10000;
+}
+.zindex-10001 {
+	z-index: 10001;
+}
+.zindex-99999 {
+	z-index: 99999;
+}
+.zindex-100000 {
+	z-index: 100000;
+}
+.zindex-100001 {
+	z-index: 100001;
+}
+/* margin */
+
+/* #ifndef APP-PLUS-NVUE */
+.mg-auto {
+	margin: auto;
+}
+.mgx-auto {
+	margin-left: auto; margin-right: auto;
+}
+.mgy-auto {
+	margin-top: auto; margin-bottom: auto;
+}
+.mgl-auto {
+	margin-left: auto;
+}
+.mgr-auto {
+	margin-right: auto;
+}
+.mgt-auto {
+	margin-top: auto;
+}
+.mgb-auto {
+	margin-bottom: auto;
+}
+/* #endif */
+.mg-0 {
+	margin: 0;
+}
+.mgl-2 {
+	margin-left: 2rpx;
+}
+.mgl-4 {
+	margin-left: 4rpx;
+}
+.mgl-6 {
+	margin-left: 6rpx;
+}
+.mgl-8 {
+	margin-left: 8rpx;
+}
+.mg-10 {
+	margin: 10;
+}
+.mg-20 {
+	margin: 20;
+}
+.mg-30 {
+	margin: 30;
+}
+.mg-40 {
+	margin: 40;
+}
+.mg-50 {
+	margin: 50;
+}
+.mg-60 {
+	margin: 60;
+}
+.mg-70 {
+	margin: 70;
+}
+.mg-80 {
+	margin: 80;
+}
+.mg-90 {
+	margin: 90;
+}
+.mg-100 {
+	margin: 100;
+}
+.mgl-0 {
+	margin-left: 0;
+}
+.mgl-2 {
+	margin-left: 2rpx;
+}
+.mgl-4 {
+	margin-left: 4rpx;
+}
+.mgl-6 {
+	margin-left: 6rpx;
+}
+.mgl-8 {
+	margin-left: 8rpx;
+}
+.mgl-10 {
+	margin-left: 10rpx;
+}
+.mgl-12 {
+	margin-left: 12rpx;
+}
+.mgl-14 {
+	margin-left: 14rpx;
+}
+.mgl-15 {
+	margin-left: 15rpx;
+}
+.mgl-16 {
+	margin-left: 16rpx;
+}
+.mgl-18 {
+	margin-left: 18rpx;
+}
+.mgl-20 {
+	margin-left: 20rpx;
+}
+.mgl-20 {
+	margin-left: 20rpx;
+}
+.mgl-22 {
+	margin-left: 22rpx;
+}
+.mgl-24 {
+	margin-left: 24rpx;
+}
+.mgl-26 {
+	margin-left: 26rpx;
+}
+.mgl-28 {
+	margin-left: 28rpx;
+}
+.mgl-30 {
+	margin-left: 30rpx;
+}
+.mgl-34 {
+	margin-left: 34rpx;
+}
+.mgl-40 {
+	margin-left: 40rpx;
+}
+.mgl-50{
+	margin-left: 50rpx;
+}
+.mgr-0 {
+	margin-right: 0;
+}
+.mgr-2 {
+	margin-right: 2rpx;
+}
+.mgr-4 {
+	margin-right: 4rpx;
+}
+.mgr-6 {
+	margin-right: 6rpx;
+}
+.mgr-8 {
+	margin-right: 8rpx;
+}
+.mgr-10 {
+	margin-right: 10rpx;
+}
+.mgr-12 {
+	margin-right: 12rpx;
+}
+.mgr-14 {
+	margin-right: 14rpx;
+}
+.mgr-15 {
+	margin-right: 15rpx;
+}
+.mgr-16 {
+	margin-right: 16rpx;
+}
+.mgr-18 {
+	margin-right: 18rpx;
+}
+.mgr-20 {
+	margin-right: 20rpx;
+}
+.mgr-24{
+	margin-right: 24rpx;
+}
+.mgr-30 {
+	margin-right: 30rpx;
+}
+.mgr-40 {
+	margin-right: 40rpx;
+}
+.mgr-50 {
+	margin-right: 50rpx;
+}
+.mgr-60 {
+	margin-right: 60rpx;
+}
+.mgr-70 {
+	margin-right: 70rpx;
+}
+.mgr-80 {
+	margin-right: 80rpx;
+}
+.mgr-90 {
+	margin-right: 90rpx;
+}
+.mgr-100 {
+	margin-right: 100rpx;
+}
+.mgr-110 {
+	margin-right: 110rpx;
+}
+.mgr-120 {
+	margin-right: 120rpx;
+}
+.mgr-130 {
+	margin-right: 130rpx;
+}
+.mgr-140 {
+	margin-right: 140rpx;
+}
+.mgx-0 {
+	margin-left: 0; margin-right: 0;
+}
+.mgx-5 {
+	margin-left: 5rpx; margin-right: 5rpx;
+}
+.mgx-10 {
+	margin-left: 10rpx; margin-right: 10rpx;
+}
+.mgx-20 {
+	margin-left: 20rpx; margin-right: 20rpx;
+}
+.mgx-24{
+	margin-left: 24rpx; margin-right: 24rpx;
+}
+.mgx-24-{
+	margin-left: -24rpx; margin-right: -24rpx;
+}
+.mgx-30 {
+	margin-left: 30rpx; margin-right: 30rpx;
+}
+.mgx-40 {
+	margin-left: 40rpx; margin-right: 40rpx;
+}
+.mgx-50 {
+	margin-left: 50rpx; margin-right: 50rpx;
+}
+.mgx-60 {
+	margin-left: 60rpx; margin-right: 60rpx;
+}
+.mgx-70 {
+	margin-left: 70rpx; margin-right: 70rpx;
+}
+.mgx-80 {
+	margin-left: 80rpx; margin-right: 80rpx;
+}
+.mgx-90 {
+	margin-left: 90rpx; margin-right: 90rpx;
+}
+.mgx-100 {
+	margin-left: 100rpx; margin-right: 100rpx;
+}
+.mgy-0 {
+	margin-top: 0; margin-bottom: 0;
+}
+.mgy-10 {
+	margin-top: 10rpx; margin-bottom: 10rpx;
+}
+.mgy-20 {
+	margin-top: 20rpx; margin-bottom: 20rpx;
+}
+.mgy-30 {
+	margin-top: 30rpx; margin-bottom: 30rpx;
+}
+.mgy-40 {
+	margin-top: 40rpx; margin-bottom: 40rpx;
+}
+.mgy-50 {
+	margin-top: 50rpx; margin-bottom: 50rpx;
+}
+.mgy-60 {
+	margin-top: 60rpx; margin-bottom: 60rpx;
+}
+.mgy-70 {
+	margin-top: 70rpx; margin-bottom: 70rpx;
+}
+.mgy-80 {
+	margin-top: 80rpx; margin-bottom: 80rpx;
+}
+.mgy-90 {
+	margin-top: 90rpx; margin-bottom: 90rpx;
+}
+.mgy-100 {
+	margin-top: 100rpx; margin-bottom: 100rpx;
+}
+.mgt-0 {
+	margin-top: 0;
+}
+.mgt-2 {
+	margin-top: 2rpx;
+}
+.mgt-4 {
+	margin-top: 4rpx;
+}
+.mgt-6 {
+	margin-top: 6rpx;
+}
+.mgt-8 {
+	margin-top: 8rpx;
+}
+.mgt-10 {
+	margin-top: 10rpx;
+}
+.mgt-12 {
+	margin-top: 12rpx;
+}
+.mgt-14 {
+	margin-top: 14rpx;
+}
+.mgt-15 {
+	margin-top: 15rpx;
+}
+.mgt-16 {
+	margin-top: 16rpx;
+}
+.mgt-18 {
+	margin-top: 18rpx;
+}
+.mgt-20 {
+	margin-top: 20rpx;
+}
+.mgt-22 {
+	margin-top: 22rpx;
+}
+.mgt-23 {
+	margin-top: 23rpx;
+}
+.mgt-24 {
+	margin-top: 24rpx;
+}
+.mgt-26 {
+	margin-top: 26rpx;
+}
+.mgt-28 {
+	margin-top: 28rpx;
+}
+.mgt-30 {
+	margin-top: 30rpx;
+}
+.mgt-35 {
+	margin-top: 35rpx;
+}
+.mgt-36 {
+	margin-top: 36rpx;
+}
+.mgt-38 {
+	margin-top: 38rpx;
+}
+.mgt-40 {
+	margin-top: 40rpx;
+}
+.mgt-50 {
+	margin-top: 50rpx;
+}
+.mgt-60 {
+	margin-top: 60rpx;
+}
+.mgt-70 {
+	margin-top: 70rpx;
+}
+.mgt-80 {
+	margin-top: 80rpx;
+}
+.mgt-90 {
+	margin-top: 90rpx;
+}
+.mgt-100 {
+	margin-top: 100rpx;
+}
+.mgt-110 {
+	margin-top: 110rpx;
+}
+.mgt-120 {
+	margin-top: 120rpx;
+}
+.mgt-130 {
+	margin-top: 130rpx;
+}
+.mgt-140 {
+	margin-top: 140rpx;
+}
+.mgt-160 {
+	margin-top: 160rpx;
+}
+.mgt-170 {
+	margin-top: 170rpx;
+}
+.mgt-180 {
+	margin-top: 180rpx;
+}
+.mgt-190 {
+	margin-top: 190rpx;
+}
+.mgt-200 {
+	margin-top: 200rpx;
+}
+.mgt-210 {
+	margin-top: 210rpx;
+}
+.mgt-220 {
+	margin-top: 220rpx;
+}
+.mgt-230 {
+	margin-top: 230rpx;
+}
+.mgt-240 {
+	margin-top: 240rpx;
+}
+.mgb-0 {
+	margin-bottom: 0;
+}
+.mgb-10 {
+	margin-bottom: 10rpx;
+}
+.mgb-20 {
+	margin-bottom: 20rpx;
+}
+.mgb-30 {
+	margin-bottom: 30rpx;
+}
+.mgb-40 {
+	margin-bottom: 40rpx;
+}
+.mgb-50 {
+	margin-bottom: 50rpx;
+}
+.mgb-60 {
+	margin-bottom: 60rpx;
+}
+.mgb-70 {
+	margin-bottom: 70rpx;
+}
+.mgb-80 {
+	margin-bottom: 80rpx;
+}
+.mgb-90 {
+	margin-bottom: 90rpx;
+}
+.mgb-100 {
+	margin-bottom: 100rpx;
+}
+/* padding */
+.pd-0 {
+	padding: 0;
+}
+.pd-10 {
+	padding: 10rpx;
+}
+.pd-20 {
+	padding: 20rpx;
+}
+.pd-24 {
+	padding: 24rpx;
+}
+.pd-30 {
+	padding: 30rpx;
+}
+.pd-40 {
+	padding: 40rpx;
+}
+.pd-50 {
+	padding: 50rpx;
+}
+.pd-60 {
+	padding: 60rpx;
+}
+.pd-70 {
+	padding: 70rpx;
+}
+.pd-80 {
+	padding: 80rpx;
+}
+.pd-90 {
+	padding: 90rpx;
+}
+.pd-100 {
+	padding: 100rpx;
+}
+.pd-110 {
+	padding: 110rpx;
+}
+.pdx-0 {
+	padding-left: 0; padding-right: 0;
+}
+.pdx-4 {
+	padding-left: 4rpx; padding-right: 4rpx;
+}
+.pdx-6 {
+	padding-left: 6rpx; padding-right: 6rpx;
+}
+.pdx-10 {
+	padding-left: 10rpx; padding-right: 10rpx;
+}
+.pdx-12 {
+	padding-left: 12rpx; padding-right: 12rpx;
+}
+.pdx-14 {
+	padding-left: 14rpx; padding-right: 14rpx;
+}
+.pdx-16 {
+	padding-left: 16rpx; padding-right: 16rpx;
+}
+.pdx-18 {
+	padding-left: 18rpx; padding-right: 18rpx;
+}
+.pdx-20 {
+	padding-left: 20rpx; padding-right: 20rpx;
+}
+.pdx-22 {
+	padding-left: 22rpx; padding-right: 22rpx;
+}
+.pdx-24 {
+	padding-left: 24rpx; padding-right: 24rpx;
+}
+.pdx-26 {
+	padding-left: 26rpx; padding-right: 26rpx;
+}
+.pdx-28 {
+	padding-left: 28rpx; padding-right: 28rpx;
+}
+.pdx-30 {
+	padding-left: 30rpx; padding-right: 30rpx;
+}
+.pdx-40 {
+	padding-left: 40rpx; padding-right: 40rpx;
+}
+.pdx-50 {
+	padding-left: 50rpx; padding-right: 50rpx;
+}
+.pdx-60 {
+	padding-left: 60rpx; padding-right: 60rpx;
+}
+.pdx-70 {
+	padding-left: 70rpx; padding-right: 70rpx;
+}
+.pdx-80 {
+	padding-left: 80rpx; padding-right: 80rpx;
+}
+.pdx-100 {
+	padding-left: 100rpx; padding-right: 100rpx;
+}
+.pdx-110 {
+	padding-left: 110rpx; padding-right: 110rpx;
+}
+.pdx-120 {
+	padding-left: 120rpx; padding-right: 120rpx;
+}
+.pdy-0 {
+	padding-top: 0; padding-bottom: 0;
+}
+.pdy-2 {
+	padding-top: 2rpx; padding-bottom: 2rpx;
+}
+.pdy-4 {
+	padding-top: 4rpx; padding-bottom: 4rpx;
+}
+.pdy-6 {
+	padding-top: 6rpx; padding-bottom: 6rpx;
+}
+.pdy-8 {
+	padding-top: 8rpx; padding-bottom: 8rpx;
+}
+.pdy-10 {
+	padding-top: 10rpx; padding-bottom: 10rpx;
+}
+.pdy-12 {
+	padding-top: 12rpx; padding-bottom: 12rpx;
+}
+.pdy-14 {
+	padding-top: 14rpx; padding-bottom: 14rpx;
+}
+.pdy-16 {
+	padding-top: 16rpx; padding-bottom: 16rpx;
+}
+.pdy-18 {
+	padding-top: 18rpx; padding-bottom: 18rpx;
+}
+.pdy-20 {
+	padding-top: 20rpx; padding-bottom: 20rpx;
+}
+.pdy-30 {
+	padding-top: 30rpx; padding-bottom: 30rpx;
+}
+.pdy-35 {
+	padding-top: 35rpx; padding-bottom: 35rpx;
+}
+.pdy-40 {
+	padding-top: 40rpx; padding-bottom: 40rpx;
+}
+.pdy-50 {
+	padding-top: 50rpx; padding-bottom: 50rpx;
+}
+.pdy-60 {
+	padding-top: 60rpx; padding-bottom: 60rpx;
+}
+.pdy-70 {
+	padding-top: 70rpx; padding-bottom: 70rpx;
+}
+.pdy-80 {
+	padding-top: 80rpx; padding-bottom: 80rpx;
+}
+.pdy-100 {
+	padding-top: 100rpx; padding-bottom: 100rpx;
+}
+.pdy-110 {
+	padding-top: 110rpx; padding-bottom: 110rpx;
+}
+.pdy-120 {
+	padding-top: 120rpx; padding-bottom: 120rpx;
+}
+.pdt-0 {
+	padding-top: 0;
+}
+.pdt-10 {
+	padding-top: 10rpx;
+}
+.pdt-20 {
+	padding-top: 20rpx;
+}
+.pdt-22 {
+	padding-top: 22rpx;
+}
+.pdt-24 {
+	padding-top: 24rpx;
+}
+.pdt-26 {
+	padding-top: 26rpx;
+}
+.pdt-28 {
+	padding-top: 28rpx;
+}
+.pdt-30 {
+	padding-top: 30rpx;
+}
+.pdt-40 {
+	padding-top: 40rpx;
+}
+.pdt-50 {
+	padding-top: 50rpx;
+}
+.pdt-60 {
+	padding-top: 60rpx;
+}
+.pdt-70 {
+	padding-top: 70rpx;
+}
+.pdt-80 {
+	padding-top: 80rpx;
+}
+.pdt-90 {
+	padding-top: 90rpx;
+}
+.pdt-100 {
+	padding-top: 100rpx;
+}
+.pdt-110 {
+	padding-top: 110rpx;
+}
+.pdt-120 {
+	padding-top: 120rpx;
+}
+.pdt-140 {
+	padding-top: 140rpx;
+}
+.pdt-160 {
+	padding-top: 160rpx;
+}
+.pdt-180 {
+	padding-top: 180rpx;
+}
+.pdt-200 {
+	padding-top: 200rpx;
+}
+.pdt-220 {
+	padding-top: 220rpx;
+}
+.pdt-240 {
+	padding-top: 240rpx;
+}
+.pdb-0 {
+	padding-bottom: 0;
+}
+.pdb-10 {
+	padding-bottom: 10rpx;
+}
+.pdb-12 {
+	padding-bottom: 12rpx;
+}
+.pdb-14 {
+	padding-bottom: 14rpx;
+}
+.pdb-15 {
+	padding-bottom: 15rpx;
+}
+.pdb-16 {
+	padding-bottom: 16rpx;
+}
+.pdb-18 {
+	padding-bottom: 18rpx;
+}
+.pdb-20 {
+	padding-bottom: 20rpx;
+}
+.pdb-30 {
+	padding-bottom: 30rpx;
+}
+.pdb-40 {
+	padding-bottom: 40rpx;
+}
+.pdb-50 {
+	padding-bottom: 50rpx;
+}
+.pdb-60 {
+	padding-bottom: 60rpx;
+}
+.pdb-70 {
+	padding-bottom: 70rpx;
+}
+.pdb-80 {
+	padding-bottom: 80rpx;
+}
+.pdb-90 {
+	padding-bottom: 90rpx;
+}
+.pdb-100 {
+	padding-bottom: 100rpx;
+}
+.pdb-110 {
+	padding-bottom: 110rpx;
+}
+.pdb-120 {
+	padding-bottom: 120rpx;
+}
+.pdb-300 {
+	padding-bottom: 300rpx;
+}
+.pdl-0 {
+	padding-left: 0;
+}
+.pdl-10 {
+	padding-left: 10rpx;
+}
+.pdl-20 {
+	padding-left: 20rpx;
+}
+.pdl-22 {
+	padding-left: 22rpx;
+}
+.pdl-24 {
+	padding-left: 24rpx;
+}
+.pdl-26 {
+	padding-left: 26rpx;
+}
+.pdl-28 {
+	padding-left: 28rpx;
+}
+.pdl-30 {
+	padding-left: 30rpx;
+}
+.pdl-32 {
+	padding-left: 32rpx;
+}
+.pdl-34 {
+	padding-left: 34rpx;
+}
+.pdl-36 {
+	padding-left: 36rpx;
+}
+.pdl-38 {
+	padding-left: 38rpx;
+}
+.pdl-40 {
+	padding-left: 40rpx;
+}
+.pdl-50 {
+	padding-left: 50rpx;
+}
+.pdl-60 {
+	padding-left: 60rpx;
+}
+.pdl-70 {
+	padding-left: 70rpx;
+}
+.pdl-80 {
+	padding-left: 80rpx;
+}
+.pdl-90 {
+	padding-left: 90rpx;
+}
+.pdl-100 {
+	padding-left: 100rpx;
+}
+.pdr-0 {
+	padding-right: 0;
+}
+.pdr-10 {
+	padding-right: 10rpx;
+}
+.pdr-20 {
+	padding-right: 20rpx;
+}
+.pdr-30 {
+	padding-right: 30rpx;
+}
+.pdr-40 {
+	padding-right: 40rpx;
+}
+.pdr-50 {
+	padding-right: 50rpx;
+}
+.pdr-60 {
+	padding-right: 60rpx;
+}
+.pdr-70 {
+	padding-right: 70rpx;
+}
+.pdr-80 {
+	padding-right: 80rpx;
+}
+.pdr-90 {
+	padding-right: 90rpx;
+}
+.pdr-100 {
+	padding-right: 100rpx;
+}
+.pdr-110 {
+	padding-right: 110rpx;
+}
+.pdr-120 {
+	padding-right: 120rpx;
+}
+/* width */
+.w {
+	width: 100%;
+}
+.w-10 {
+	width: 10rpx;
+}
+.w-12 {
+	width: 12rpx;
+}
+.w-14 {
+	width: 14rpx;
+}
+.w-16 {
+	width: 16rpx;
+}
+.w-18 {
+	width: 18rpx;
+}
+.w-20 {
+	width: 20rpx;
+}
+.w-24 {
+	width: 24rpx;
+}
+.w-30 {
+	width: 30rpx;
+}
+.w-32 {
+	width: 32rpx;
+}
+.w-36 {
+	width: 36rpx;
+}
+.w-38 {
+	width: 38rpx;
+}
+.w-40 {
+	width: 40rpx;
+}
+.w-42 {
+	width: 42rpx;
+}
+.w-44 {
+	width: 44rpx;
+}
+.w-44px {
+	width: 44px;
+}
+.w-46 {
+	width: 46rpx;
+}
+.w-48 {
+	width: 48rpx;
+}
+.w-50 {
+	width: 50rpx;
+}
+.w-52 {
+	width: 52rpx;
+}
+.w-54 {
+	width: 54rpx;
+}
+.w-56 {
+	width: 56rpx;
+}
+.w-58 {
+	width: 58rpx;
+}
+.w-60 {
+	width: 60rpx;
+}
+.w-64 {
+	width: 64rpx;
+}
+.w-65 {
+	width: 65rpx;
+}
+.w-70 {
+	width: 70rpx;
+}
+.w-80 {
+	width: 80rpx;
+}
+.w-90 {
+	width: 90rpx;
+}
+.w-92 {
+	width: 92rpx;
+}
+.w-96 {
+	width: 96rpx;
+}
+.w-100 {
+	width: 100rpx;
+}
+.w-110 {
+	width: 110rpx;
+}
+.w-120 {
+	width: 120rpx;
+}
+.w-140 {
+	width: 140rpx;
+}
+.w-147 {
+	width: 147rpx;
+}
+.w-160 {
+	width: 160rpx;
+}
+.w-170 {
+	width: 170rpx;
+}
+.w-180 {
+	width: 180rpx;
+}
+.w-190 {
+	width: 190rpx;
+}
+.w-200 {
+	width: 200rpx;
+}
+.w-240 {
+	width: 240rpx;
+}
+.w-260 {
+	width: 260rpx;
+}
+.w-220 {
+	width: 220rpx;
+}
+.w-375, .w-1_2 {
+	width: 375rpx;
+}
+.w-230 {
+	width: 230rpx;
+}
+.w-250, .w-1_3 {
+	width: 250rpx;
+}
+.w-253 {
+	width: 253rpx;
+}
+.w-260 {
+	width: 260rpx;
+}
+.w-270 {
+	width: 270rpx;
+}
+.w-280 {
+	width: 280rpx;
+}
+.w-290 {
+	width: 290rpx;
+}
+.w-300 {
+	width: 300rpx;
+}
+.w-310 {
+	width: 310rpx;
+}
+.w-320 {
+	width: 320rpx;
+}
+.w-330 {
+	width: 330rpx;
+}
+.w-335 {
+	width: 335rpx;
+}
+.w-340 {
+	width: 340rpx;
+}
+.w-350 {
+	width: 350rpx;
+}
+.w-360 {
+	width: 360rpx;
+}
+.w-370 {
+	width: 370rpx;
+}
+.w-380 {
+	width: 380rpx;
+}
+.w-400 {
+	width: 400rpx;
+}
+.w-420 {
+	width: 420rpx;
+}
+.w-440 {
+	width: 440rpx;
+}
+.w-480 {
+	width: 480rpx;
+}
+.w-610 {
+	width: 610rpx;
+}
+.w-690 {
+	width: 690rpx;
+}
+.w-187, .w-1_4 {
+	width: 187.5rpx;
+}
+.w-150, .w-1_5 {
+	width: 150rpx;
+}
+.w-156 {
+	width: 156rpx;
+}
+.w-125, .w-1_6 {
+	width: 125rpx;
+}
+.w-93, .w-1_8 {
+	width: 93.75rpx;
+}
+.w-750, .w100 {
+	width: 750rpx;
+}
+.w-750 {
+	width: 750rpx;
+}
+.w-200px{
+	width: 200px;
+}
+.w-249px{
+	width: 249px;
+}
+.w_10 {
+	width: 10%;
+}
+.w_20 {
+	width: 20%;
+}
+.w_25 {
+	width: 25%;
+}
+.w_33 {
+	width: 33.33%;
+}
+.w_50 {
+	width: 50%;
+}
+/* height */
+.h, .h100 {
+	height: 100%;
+}
+.hvh100 {
+	height: 100vh;
+}
+.h-2 {
+	height: 2rpx;
+}
+.h-4 {
+	height: 4rpx;
+}
+.h-6 {
+	height: 6rpx;
+}
+.h-8 {
+	height: 8rpx;
+}
+.h-10 {
+	height: 10rpx;
+}
+.h-11 {
+	height: 11rpx;
+}
+.h-12 {
+	height: 12rpx;
+}
+.h-14 {
+	height: 14rpx;
+}
+.h-16 {
+	height: 16rpx;
+}
+.h-18 {
+	height: 18rpx;
+}
+.h-20 {
+	height: 20rpx;
+}
+.h-22 {
+	height: 22rpx;
+}
+.h-24 {
+	height: 24rpx;
+}
+.h-26 {
+	height: 26rpx;
+}
+.h-28 {
+	height: 28rpx;
+}
+.h-30 {
+	height: 30rpx;
+}
+.h-32 {
+	height: 32rpx;
+}
+.h-34 {
+	height: 34rpx;
+}
+.h-36 {
+	height: 36rpx;
+}
+.h-38 {
+	height: 38rpx;
+}
+.h-40 {
+	height: 40rpx;
+}
+.h-40px {
+	height: 40px;
+}
+.h-44 {
+	height: 44rpx;
+}
+.h-44px {
+	height: 44px;
+}
+.h-48{
+	height: 48rpx;
+}
+.h-50 {
+	height: 50rpx;
+}
+.h-56 {
+	height: 56rpx;
+}
+.h-60 {
+	height: 60rpx;
+}
+.h-61 {
+	height: 61rpx;
+}
+.h-62 {
+	height: 62rpx;
+}
+.h-63 {
+	height: 63rpx;
+}
+.h-64 {
+	height: 64rpx;
+}
+.h-65 {
+	height: 65rpx;
+}
+.h-66 {
+	height: 66rpx;
+}
+.h-67 {
+	height: 67rpx;
+}
+.h-68 {
+	height: 68rpx;
+}
+.h-69 {
+	height: 69rpx;
+}
+.h-70 {
+	height: 70rpx;
+}
+.h-80 {
+	height: 80rpx;
+}
+.h-88 {
+	height: 88rpx;
+}
+.h-90 {
+	height: 90rpx;
+}
+.h-96 {
+	height: 96rpx;
+}
+.h-100 {
+	height: 100rpx;
+}
+.h-102 {
+	height: 102rpx;
+}
+.h-104 {
+	height: 104rpx;
+}
+.h-106 {
+	height: 106rpx;
+}
+.h-108 {
+	height: 108rpx;
+}
+.h-110 {
+	height: 110rpx;
+}
+.h-120 {
+	height: 120rpx;
+}
+.h-130 {
+	height: 130rpx;
+}
+.h-140 {
+	height: 140rpx;
+}
+.h-150 {
+	height: 150rpx;
+}
+.h-160 {
+	height: 160rpx;
+}
+.h-180 {
+	height: 180rpx;
+}
+.h-184 {
+	height: 184rpx;
+}
+.h-192 {
+	height: 192rpx;
+}
+.h-200 {
+	height: 200rpx;
+}
+.h-210 {
+	height: 210rpx;
+}
+.h-220 {
+	height: 220rpx;
+}
+.h-240 {
+	height: 240rpx;
+}
+.h-260 {
+	height: 260rpx;
+}
+.h-280 {
+	height: 280rpx;
+}
+.h-300 {
+	height: 300rpx;
+}
+.h-320 {
+	height: 320rpx;
+}
+.h-326{
+	height: 326rpx;
+}
+.h-336{
+	height: 336rpx;
+}
+.h-340 {
+	height: 340rpx;
+}
+.h-350 {
+	height: 350rpx;
+}
+.h-360 {
+	height: 360rpx;
+}
+.h-380 {
+	height: 380rpx;
+}
+.h-400 {
+	height: 400rpx;
+}
+.h-420 {
+	height: 420rpx;
+}
+.h-460 {
+	height: 460rpx;
+}
+.h-480 {
+	height: 480rpx;
+}
+.h-500 {
+	height: 500rpx;
+}
+.h-520 {
+	height: 520rpx;
+}
+.h-750 {
+	height: 750rpx;
+}
+.h-136px{
+	height:136px;
+}
+.h-200px{
+	height:200px;
+}
+.h-249px{
+	height:249px;
+}
+.h-272px{
+	height:272px;
+}
+.h-339px{
+	height:339px;
+}
+/* #ifndef APP-PLUS-NVUE*/
+/* min-width */
+
+.minw-10 {
+	min-width: 10rpx;
+}
+.minw-20 {
+	min-width: 20rpx;
+}
+.minw-30 {
+	min-width: 30rpx;
+}
+.minw-40 {
+	min-width: 40rpx;
+}
+.minw-50 {
+	min-width: 50rpx;
+}
+.minw-60 {
+	min-width: 60rpx;
+}
+.minw-70 {
+	min-width: 70rpx;
+}
+.minw-80 {
+	min-width: 80rpx;
+}
+.minw-90 {
+	min-width: 90rpx;
+}
+.minw-100 {
+	min-width: 100rpx;
+}
+.minw-120 {
+	min-width: 120rpx;
+}
+/* min-height */
+.minh_100 {
+	min-height: 100%;
+}
+.minh {
+	min-height: 100vh;
+}
+.minh-100 {
+	min-height: 100rpx;
+}
+.minh-120 {
+	min-height: 120rpx;
+}
+
+
+/* maxheight */
+.maxvh-10 {
+	max-height: 10vh;
+}
+.maxvh-20 {
+	max-height: 20vh;
+}
+.maxvh-30 {
+	max-height: 30vh;
+}
+.maxvh-40 {
+	max-height: 40vh;
+}
+.maxvh-50 {
+	max-height: 50vh;
+}
+.maxvh-60 {
+	max-height: 60vh;
+}
+.maxvh-70 {
+	max-height: 70vh;
+}
+.maxvh-80 {
+	max-height: 80vh;
+}
+.maxvh-90 {
+	max-height: 90vh;
+}
+.maxvh-100 {
+	max-height: 100vh;
+}
+.mh-10 {
+	max-height: 10rpx;
+}
+.mh-20 {
+	max-height: 20rpx;
+}
+.mh-30 {
+	max-height: 30rpx;
+}
+.mh-40 {
+	max-height: 40rpx;
+}
+.mh-50 {
+	max-height: 50rpx;
+}
+.mh-60 {
+	max-height: 60rpx;
+}
+.mh-80 {
+	max-height: 80rpx;
+}
+.mh-90 {
+	max-height: 90rpx;
+}
+.mh-100 {
+	max-height: 100rpx;
+}
+.mh-120 {
+	max-height: 120rpx;
+}
+.mh-130 {
+	max-height: 130rpx;
+}
+.mh-140 {
+	max-height: 140rpx;
+}
+.mh-150 {
+	max-height: 150rpx;
+}
+.mh-160 {
+	max-height: 160rpx;
+}
+/* #endif */
+/* lineheight */
+.lh-1 {
+	line-height: 1;
+}
+.lh-1_2 {
+	line-height: 1.2;
+}
+.lh-1_4 {
+	line-height: 1.4;
+}
+.lh-1_6 {
+	line-height: 1.6;
+}
+.lh-1_8 {
+	line-height: 1.8;
+}
+.lh-2 {
+	line-height: 2;
+}
+.lh-2_2 {
+	line-height: 2.2;
+}
+/* #ifndef APP-PLUS-NVUE */
+.lh-ih {
+	line-height: inherit;
+}
+
+/* #endif */
+/* #ifndef APP-PLUS-NVUE*/
+/* scroll-view */
+.scroll-row, .scroll-x {
+	white-space: nowrap;
+}
+/* #endif */
+
+
+/* 边框 */
+.border {
+	border: 1px solid #eeeeee;
+}
+.border-top {
+	border-top: 1px solid #eeeeee;
+}
+.border-top-20{
+	border-top: 20rpx solid #eeeeee;
+}
+.border-left {
+	border-left: 1px solid #eeeeee;
+}
+.border-bottom  {
+	border-bottom: 1px solid #eeeeee;
+}
+.border-right {
+	border-right: 1px solid #eeeeee;
+}
+.border-width-2px {
+	border-width: 2px;
+}
+.border-color-primary-02, .border-primary-02 {
+	border-color: rgba(218, 37, 28, .2);
+}
+.border-white, .border-color-white {
+	border-color: #ffffff;
+}
+.border-color-eee {
+	border-color: #eeeeee;
+}
+.border-color-e5e5e5 {
+	border-color: #e5e5e5;
+}
+.border-color-f8f8f8 {
+	border-color: #f8f8f8;
+}
+.border-color-transparent {
+	border-color: rgba(0, 0, 0, 0);
+}
+.border-color-tt {
+	border-color: transparent;
+}
+.border-0_1 {
+	border: 1rpx solid rgba(0,0,0,.1);
+}
+.baf, .bef {
+	position: relative;
+}
+.baf::after {
+	top: 0;
+}
+.bef::before {
+	bottom: 0;
+}
+/* 圆角 */
+.radio-0 {
+	border-radius: 0rpx;
+}
+.radio-2 {
+	border-radius: 2rpx;
+}
+.radio-4 {
+	border-radius: 4rpx;
+}
+.radio-6 {
+	border-radius: 6rpx;
+}
+.radio-8 {
+	border-radius: 8rpx;
+}
+.radio-10  {
+	border-radius: 10rpx;
+}
+.radio-16 {
+	border-radius: 16rpx;
+}
+.radio-20  {
+	border-radius: 20rpx;
+}
+.radio-22  {
+	border-radius: 22rpx;
+}
+.radio-30  {
+	border-radius: 30rpx;
+}
+.radio-40  {
+	border-radius: 40rpx;
+}
+.radio-50  {
+	border-radius: 50rpx;
+}
+.radio-60  {
+	border-radius: 60rpx;
+}
+.radio-70  {
+	border-radius: 70rpx;
+}
+.radio-80  {
+	border-radius: 80rpx;
+}
+.radio-90  {
+	border-radius: 90rpx;
+}
+.radio-100  {
+	border-radius: 100rpx;
+}
+.radio-120  {
+	border-radius: 120rpx;
+}
+.radio-130  {
+	border-radius: 130rpx;
+}
+.radio-140  {
+	border-radius: 140rpx;
+}
+.radio-150  {
+	border-radius: 150rpx;
+}
+.radio-160  {
+	border-radius: 160rpx;
+}
+.radio-circle  {
+	border-radius: 50%;
+}
+.radio-o {
+	border-radius: 750rpx;
+}
+.radio-t-10 {
+	border-top-left-radius: 10rpx; border-top-right-radius: 10rpx;
+}
+.radio-t-20 {
+	border-top-left-radius: 20rpx; border-top-right-radius: 20rpx;
+}
+.radio-t-30 {
+	border-top-left-radius: 30rpx; border-top-right-radius: 30rpx;
+}
+.radio-t-40 {
+	border-top-left-radius: 40rpx; border-top-right-radius: 40rpx;
+}
+.radio-t-50 {
+	border-top-left-radius: 50rpx; border-top-right-radius: 50rpx;
+}
+.radio-t-60 {
+	border-top-left-radius: 60rpx; border-top-right-radius: 60rpx;
+}
+.radio-t-70 {
+	border-top-left-radius: 70rpx; border-top-right-radius: 70rpx;
+}
+
+.radio-b-10 {
+	border-bottom-left-radius: 10rpx; border-bottom-right-radius: 10rpx;
+}
+.radio-b-20 {
+	border-bottom-left-radius: 20rpx; border-bottom-right-radius: 20rpx;
+}
+.radio-b-30 {
+	border-bottom-left-radius: 30rpx; border-bottom-right-radius: 30rpx;
+}
+.radio-b-40 {
+	border-bottom-left-radius: 40rpx; border-bottom-right-radius: 40rpx;
+}
+.radio-b-50 {
+	border-bottom-left-radius: 50rpx; border-bottom-right-radius: 50rpx;
+}
+.radio-b-60 {
+	border-bottom-left-radius: 60rpx; border-bottom-right-radius: 60rpx;
+}
+.radio-b-70 {
+	border-bottom-left-radius: 70rpx; border-bottom-right-radius: 70rpx;
+}
+
+.radio-lt-10 {
+	border-top-left-radius: 10rpx;
+}
+.radio-lt-20 {
+	border-top-left-radius: 20rpx;
+}
+.radio-lt-30 {
+	border-top-left-radius: 30rpx;
+}
+.radio-lt-40 {
+	border-top-left-radius: 40rpx;
+}
+.radio-lt-50 {
+	border-top-left-radius: 50rpx;
+}
+.radio-lt-60 {
+	border-top-left-radius: 60rpx;
+}
+
+.radio-rt-10 {
+	border-top-right-radius: 10rpx;
+}
+.radio-rt-20 {
+	border-top-right-radius: 20rpx;
+}
+.radio-rt-30 {
+	border-top-right-radius: 30rpx;
+}
+.radio-rt-40 {
+	border-top-right-radius: 40rpx;
+}
+.radio-rt-50 {
+	border-top-right-radius: 50rpx;
+}
+.radio-rt-60 {
+	border-top-right-radius: 60rpx;
+}
+
+.radio-lb-10 {
+	border-bottom-left-radius: 10rpx;
+}
+.radio-lb-20 {
+	border-bottom-left-radius: 20rpx;
+}
+.radio-lb-30 {
+	border-bottom-left-radius: 30rpx;
+}
+.radio-lb-40 {
+	border-bottom-left-radius: 40rpx;
+}
+.radio-lb-50 {
+	border-bottom-left-radius: 50rpx;
+}
+.radio-lb-60 {
+	border-bottom-left-radius: 60rpx;
+}
+
+.radio-rb-10 {
+	border-bottom-right-radius: 10rpx;
+}
+.radio-rb-20 {
+	border-bottom-right-radius: 20rpx;
+}
+.radio-rb-30 {
+	border-bottom-right-radius: 30rpx;
+}
+.radio-rb-40 {
+	border-bottom-right-radius: 40rpx;
+}
+.radio-rb-50 {
+	border-bottom-right-radius: 50rpx;
+}
+.radio-rb-60 {
+	border-bottom-right-radius: 60rpx;
+}
+/* 分隔线 */
+.divider_10 {
+	width: 100%; height: 10rpx; background-color: #F8F8F8;
+}
+.divider_20 {
+	width: 100%; height: 20rpx; background-color: #F8F8F8;
+}
+.divider_30 {
+	width: 100%; height: 30rpx; background-color: #F8F8F8;
+}
+
+/* 文字换行溢出处理 */
+.text-ellipsis {
+	overflow: hidden;
+	text-overflow: ellipsis;
+	/* #ifndef APP-PLUS-NVUE */
+	white-space: nowrap;
+	line-height: normal;
+	/* #endif */
+}
+/* #ifndef APP-NVUE */
+.line_1 {
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-box;
+	display: -o-box;
+	-webkit-box-orient: vertical;
+	-moz-box-orient: vertical;
+	-ms-box-orient: vertical;
+	-o-box-orient: vertical;
+	box-orient: vertical;
+	-webkit-line-clamp: 1;
+	-moz-line-clamp: 1;
+	-ms-line-clamp: 1;
+	-o-line-clamp: 1;
+	line-clamp: 1;
+	line-height: normal;
+	white-space: normal;
+	overflow: hidden;
+}
+.line_2{
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-box;
+	display: -o-box;
+	-webkit-box-orient: vertical;
+	-moz-box-orient: vertical;
+	-ms-box-orient: vertical;
+	-o-box-orient: vertical;
+	box-orient: vertical;
+	-webkit-line-clamp: 2;
+	-moz-line-clamp: 2;
+	-ms-line-clamp: 2;
+	-o-line-clamp: 2;
+	line-clamp: 2;
+	line-height: normal;
+	white-space: normal;
+	overflow: hidden;
+}
+.line_3{
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-box;
+	display: -o-box;
+	-webkit-box-orient: vertical;
+	-moz-box-orient: vertical;
+	-ms-box-orient: vertical;
+	-o-box-orient: vertical;
+	box-orient: vertical;
+	-webkit-line-clamp: 3;
+	-moz-line-clamp: 3;
+	-ms-line-clamp: 3;
+	-o-line-clamp: 3;
+	line-clamp: 3;
+	line-height: normal;
+	white-space: normal;
+	overflow: hidden;
+}
+.line_4{
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-box;
+	display: -o-box;
+	-webkit-box-orient: vertical;
+	-moz-box-orient: vertical;
+	-ms-box-orient: vertical;
+	-o-box-orient: vertical;
+	box-orient: vertical;
+	-webkit-line-clamp: 4;
+	-moz-line-clamp: 4;
+	-ms-line-clamp: 4;
+	-o-line-clamp: 4;
+	line-clamp: 4;
+	line-height: normal;
+	white-space: normal;
+	overflow: hidden;
+}
+.line_5{
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-box;
+	display: -o-box;
+	-webkit-box-orient: vertical;
+	-moz-box-orient: vertical;
+	-ms-box-orient: vertical;
+	-o-box-orient: vertical;
+	box-orient: vertical;
+	-webkit-line-clamp: 5;
+	-moz-line-clamp: 5;
+	-ms-line-clamp: 5;
+	-o-line-clamp: 5;
+	line-clamp: 5;
+	line-height: normal;
+	white-space: normal;
+	overflow: hidden;
+}
+.line_6{
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-box;
+	display: -o-box;
+	-webkit-box-orient: vertical;
+	-moz-box-orient: vertical;
+	-ms-box-orient: vertical;
+	-o-box-orient: vertical;
+	box-orient: vertical;
+	-webkit-line-clamp: 6;
+	-moz-line-clamp: 6;
+	-ms-line-clamp: 6;
+	-o-line-clamp: 6;
+	line-clamp: 6;
+	line-height: normal;
+	white-space: normal;
+	overflow: hidden;
+}
+/* #endif */
+
+/* 超出2行  */
+.ellipsis {
+	line-height: 1.2;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	display: -webkit-box;
+	line-clamp: 2;
+	-webkit-line-clamp: 2;
+	/* 限制显示2行 */
+	-webkit-box-orient: vertical;
+}
+
+
+
+

+ 4 - 0
src/assets/styles/index.less

@@ -2,3 +2,7 @@
 @import './mixins.less';
 @import './common.less';
 @import './iconfont.less';
+@import './flex.css';
+@import './fui.css';
+@import './uflex.css';
+

+ 201 - 0
src/assets/styles/uflex.css

@@ -0,0 +1,201 @@
+
+
+.flex {
+	/* #ifndef APP-PLUS-NVUE */
+	display: flex; 
+	/* #endif */
+	flex-direction: row;
+	
+}
+.inflex {
+	/* #ifndef APP-PLUS-NVUE */
+	display: inline-flex!important; 
+	/* #endif */
+	flex-direction: row;
+}
+.fw_wrap {
+	flex-wrap: wrap;
+}
+.fw_wr {
+	flex-wrap: wrap-reverse;
+}
+.fw_nowrap {
+	flex-wrap: nowrap;
+}
+.fd_c {
+	flex-direction: column !important;
+}
+.fd_cr {
+	flex-direction: column-reverse !important;
+}
+.fd_r {
+	flex-direction: row !important;
+}
+.fd_rr {
+	flex-direction: row-reverse !important;
+}
+
+.ai_center {
+	align-items: center;
+}
+.ai_start {
+	align-items: flex-start;
+}
+.ai_end {
+	align-items: flex-end;
+}
+.ai_stretch {
+	align-items: stretch;
+}
+/* #ifndef APP-PLUS-NVUE */
+.ai_baseline {
+	align-items: baseline;
+}
+.ai_inherit {
+	align-items: inherit;
+}
+
+.as_center {
+	align-self: center;
+}
+.as_start {
+	align-self: flex-start;
+}
+.as_end {
+	align-self: flex-end;
+}
+.as_stretch {
+	align-self: stretch;
+}
+.as_baseline {
+	align-self: baseline;
+}
+.as_auto {
+	align-self: auto;
+}
+.as_inherit {
+	align-self: inherit;
+}
+
+
+.ac_center {
+	align-content: center;
+}
+.ac_start {
+	align-content: flex-start;
+}
+.ac_end {
+	align-content: flex-end;
+}
+.ac_stretch {
+	align-content: stretch;
+}
+.ac_between {
+	align-content: space-between;
+}
+.ac_around {
+	align-content: space-around;
+}
+.ac_inherit {
+	align-content: inherit;
+}
+/* #endif */
+
+
+
+
+
+.jc_center {
+	justify-content: center;
+}
+.jc_start {
+	justify-content: flex-start;
+}
+.jc_end {
+	justify-content: flex-end;
+}
+.jc_between {
+	justify-content: space-between;
+}
+.jc_around {
+	justify-content: space-around;
+}
+
+/* #ifndef APP-PLUS-NVUE */
+.flex_g {
+	flex-grow: 1;
+}
+.flex_s {
+	flex-shrink: 1;
+}
+.flex_s-0{ 
+	flex-shrink: 0; 
+}
+/* #endif */
+.flex1 {
+	flex: 1;
+}
+.flex1_2 {
+	flex: 1.2;
+}
+.flex1_5 {
+	flex: 1.5
+}
+.flex2 {
+	flex: 2;
+}
+.flex2_2 {
+	flex: 2.2;
+}
+.flex3 {
+	flex: 3;
+}
+
+
+
+.window{
+	width: 100%;
+	height: 100%;
+	position: fixed;
+	top: 0;
+	left: 0;
+}
+.window_bg{
+	width: 100%;
+	height: 100%;
+	position: fixed;
+	top: 0;
+	left: 0;
+	background-color: rgba(0,0,0,0.5);
+}
+.close_icon{
+	width: 24rpx;
+	height: 24rpx;
+	position: absolute;
+	top: 40rpx;
+	right: 30rpx;
+}
+
+.footer{
+	width: 100%;
+	min-height: 120rpx;
+	padding: 20rpx 30rpx;
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	background-color: #FFFFFF;
+}
+.footer_btn{
+	flex: 1;
+	height: 80rpx;
+	background: linear-gradient(90deg, #FF4D32, #FF382E);
+	border-radius: 20rpx;
+	font-size: 32rpx;
+	font-weight: 600;
+	color: #FFFFFF;
+	line-height: 80rpx;
+	text-align: center;
+}
+.footer_hid{
+	height: 200rpx;
+}

+ 117 - 0
src/components/tools-mall/index.ux

@@ -0,0 +1,117 @@
+<template>
+  <div class="page-column">
+      <image class="w h-350" src="/assets/images/index_banner.jpg"></image>
+    <div class="search-hot">
+      <div class="box" for="(index, item) in hotList">
+          <text class="title_"> {{ item.title }}</text>
+         <div class="hot-list" >
+          <text class="hot-item"  @click="toPage(items.path)" for="(indexs, items) in item.list">{{
+            items.name
+          }}</text>
+        </div>
+      </div>
+      <div>
+        <text @click="fnTest('vibrator')">震动</text>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { bookListData } from '../../assets/data/book-list.js'
+import vibrator from '@system.vibrator'
+import router from '@system.router'
+export default {
+  props: [],
+  data: {
+    hotList: [
+		{
+			title:'基础功能',
+			list:[
+				{name:'一键省电',icon:'fa-battery',bg:'#cfffcd',color:'#60b956',path:'yiJianShengDian'},
+				{name:'声波除尘',icon:'fa-volume-control-phone',bg:'#ffd8db',color:'#fb5e53',path:'shengBoChuChen'},
+				{name:'网络信息',icon:'fa-rss-square',bg:'#ccccfe',color:'#8370ee',path:'wangLuoXinXi'},
+				{name:'手机测距',icon:'fa-hard-of-hearing',bg:'#80fafb',color:'#02cfdf',path:'shouJiCeJu'},
+				{name:'WiFi管理',icon:'fa-wifi',bg:'#9ed1fe',color:'#3d9aee',path:'wifiGuanLi'},
+				{name:'手机清理',icon:'fa-rocket',bg:'#fad2ec',color:'#ff4bb9',path:'shouJiQingLi'},
+				{name:'精选壁纸',icon:'fa-image',bg:'#fec2f8',color:'#c95884',path:'jingXuanBiZhi'},
+			],
+		},
+		{
+			title:'趣味测评',
+			list:[
+				{name:'趣味测评',icon:'fa-search',bg:'#e8ffc4',color:'#98ec05',path:'quWeiCePing'},
+			],
+		},
+		{
+			title:'知识课堂',
+			list:[
+				{name:'养生课堂',icon:'fa-wheelchair',bg:'#fdd1c0',color:'#fc7f43',path:'yangShengKeTang'},
+				{name:'运动计步',icon:'fa-wheelchair-alt',bg:'#9ce4fd',color:'#3d9afb',path:'yunDongJiBu'},
+				{name:'字体大小',icon:'fa-text-width',bg:'#edcbfd',color:'#d617d1',path:'ziTiDaXiao'},
+			],
+		}
+	],
+    page: 1
+  },
+  onReady() {
+    // this.refreshHostList()
+    console.log('onReady')
+  },
+  fnTest(type){
+    console.log('type',type)
+    vibrator.vibrate({
+        mode: 'long'
+    })
+  },
+  toPage(path) {
+    router.push({
+        uri: `pages/tools/${ path }`,
+        params: { key: 1 }
+      })
+  },
+}
+</script>
+
+<style lang="less">
+@import '../../assets/styles/index.less';
+
+.search-hot {
+  background-color: @white;
+  width: 100%;
+  padding: @gap-4;
+  .flex-box-mixins(column, flex-start, flex-start);
+  .search-title {
+    width: 100%;
+    margin-bottom: @gap-4;
+    .flex-box-mixins(row, space-between, center);
+  }
+  .box{
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    .title_{
+      font-size: 30px;
+      margin: 10px 0;
+      color: #000;
+    }
+  }
+  .hot-list {
+    width: 100%;
+    flex-wrap: wrap;
+  }
+  .hot-item {
+    width: 200px;
+    padding: @gap-1 0;
+    text-align: center;
+    border: 1px solid @grey;
+    border-radius: 30px;
+    margin: 15px @gap-4 15px 0;
+  }
+}
+.search-refresh {
+  .text-primary;
+  .iconfont;
+  padding: 0 @gap-3;
+}
+</style>

+ 75 - 0
src/manifest.json

@@ -29,6 +29,9 @@
     },
     {
       "name": "service.texttoaudio"
+    },
+    {
+      "name": "system.vibrator"
     }
   ],
   "permissions": [
@@ -67,6 +70,42 @@
       },
       "pages/contents": {
         "component": "index"
+      },
+      "pages/tools-mall": {
+        "component": "index"
+      },
+      "pages/tools/yiJianShengDian": {
+        "component": "index"
+      },
+      "pages/tools/shengBoChuChen": {
+        "component": "index"
+      },
+      "pages/tools/wangLuoXinXi": {
+        "component": "index"
+      },
+      "pages/tools/shouJiCeJu": {
+        "component": "index"
+      },
+      "pages/tools/wifiGuanLi": {
+        "component": "index"
+      },
+      "pages/tools/shouJiQingLi": {
+        "component": "index"
+      },
+      "pages/tools/jingXuanBiZhi": {
+        "component": "index"
+      },
+      "pages/tools/quWeiCePing": {
+        "component": "index"
+      },
+      "pages/tools/yangShengKeTang": {
+        "component": "index"
+      },
+      "pages/tools/yunDongJiBu": {
+        "component": "index"
+      },
+      "pages/tools/ziTiDaXiao": {
+        "component": "index"
       }
     }
   },
@@ -100,6 +139,42 @@
       },
       "pages/contents": {
         "titleBarText": "目录"
+      },
+      "pages/tools-mall": {
+        "titleBarText": "工具"
+      },
+      "pages/tools/yiJianShengDian": {
+        "titleBarText": "一键省电"
+      },
+      "pages/tools/shengBoChuChen": {
+        "titleBarText": "声波除尘"
+      },
+      "pages/tools/wangLuoXinXi": {
+        "titleBarText": "网络信息"
+      },
+      "pages/tools/shouJiCeJu": {
+        "titleBarText": "手机测距"
+      },
+      "pages/tools/wifiGuanLi": {
+        "titleBarText": "wifi管理"
+      },
+      "pages/tools/shouJiQingLi": {
+        "titleBarText": "手机清理"
+      },
+      "pages/tools/jingXuanBiZhi": {
+        "titleBarText": "精选壁纸"
+      },
+      "pages/tools/quWeiCePing": {
+        "titleBarText": "趣味测评"
+      },
+      "pages/tools/yangShengKeTang": {
+        "titleBarText": "养生课堂"
+      },
+      "pages/tools/yunDongJiBu": {
+        "titleBarText": "运动计步"
+      },
+      "pages/tools/ziTiDaXiao": {
+        "titleBarText": "字体大小"
       }
     }
   }

+ 3 - 1
src/pages/main/index.ux

@@ -1,6 +1,7 @@
 <import name="bookshelf" src="../../components/bookshelf"></import>
 <import name="library" src="../../components/library"></import>
 <import name="search-book" src="../../components/search-book"></import>
+<import name="tools-mall" src="../../components/tools-mall"></import>
 
 <template>
   <div class="page-wrapper">
@@ -12,6 +13,7 @@
         ></bookshelf>
         <library></library>
         <search-book></search-book>
+        <tools-mall></tools-mall>
       </tab-content>
       <tab-bar mode="fixed" class="tab-bar">
         <div class="tab-item" for="tabList">
@@ -46,7 +48,7 @@ export default {
         activatedIcon: '\ue604'
       },
       {
-        title: '工具广场',
+        title: '工具',
         icon: '\ue603',
         activatedIcon: '\ue604'
       }

+ 27 - 0
src/pages/tools-mall/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/jingXuanBiZhi/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/quWeiCePing/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/shengBoChuChen/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/shouJiCeJu/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/shouJiQingLi/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/wangLuoXinXi/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/wifiGuanLi/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/yangShengKeTang/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/yiJianShengDian/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/yunDongJiBu/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>

+ 27 - 0
src/pages/tools/ziTiDaXiao/index.ux

@@ -0,0 +1,27 @@
+<template>
+  <div class="wrapper">
+    <text class="title">{{ title }}</text>
+  </div>
+</template>
+
+<script>
+export default {
+  private: {
+    title: '欢迎体验快应用开发'
+  },
+
+  onInit() {}
+}
+</script>
+
+<style>
+.wrapper {
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.title {
+  text-align: center;
+  color: #212121;
+}
+</style>