소스 검색

fix:优化

Tang 2 년 전
부모
커밋
0ef01aa9f7

BIN
src/assets/new1/bankBGC.png


BIN
src/assets/new1/courseBGC.png


BIN
src/assets/new1/handoutBGC.png


BIN
src/assets/new1/liveBGC.png


BIN
src/assets/new1/vipBGC.png


+ 6 - 6
src/components/goodsItem-new/index.vue

@@ -6,7 +6,7 @@
     </p>
     <div class="ic_l">
       <div class="iy">{{ goodsItem.educationName }}</div>
-      <div class="iy">{{ goodsItem.businessName + goodsItem.projectName }}</div>
+      <div class="iy">{{ goodsItem.aliasName}}</div>
       <div style="clear:both;"></div>
     </div>
     <div
@@ -17,17 +17,17 @@
       "
     >
       <span v-if="goodsItem.standPrice === 0">免费</span>
-      <template v-else> ¥<span>{{ goodsItem.standPrice }}</span> </template>
+      <template v-else> ¥<span>{{ goodsItem.standPrice | formatPrice }}</span> </template>
     </div>
-    <div class="price" v-else>
-      <span>{{ goodsItem.minPrice }}</span>
+    <div class="price" v-else>
+      <span>{{ goodsItem.minPrice | formatPrice }}</span>
       <template v-if="goodsItem.minPrice != goodsItem.maxPrice">
         <i>-</i>
-        <span>{{ goodsItem.maxPrice }}</span>
+        <span>{{ goodsItem.maxPrice | formatPrice }}</span>
       </template>
     </div>
     <div class="price_del" v-if="goodsItem.linePrice">
-      原价:¥{{ goodsItem.linePrice }}
+      原价:¥{{ goodsItem.linePrice | formatPrice }}
     </div>
   </div>
 </template>

+ 12 - 11
src/components/goodsItem/IndexSkuDialog.vue

@@ -16,7 +16,9 @@
             :key="index"
             class="check_items"
           >
-            <div class="grades" v-if="specList.length >= 1">{{ item.name }}</div>
+            <div class="grades" v-if="specList.length >= 1">
+              {{ item.name }}
+            </div>
             <div class="mains" v-if="index == 0 && specList.length > 1">
               <div class="grade_names">
                 <div
@@ -38,10 +40,8 @@
                   :key="spec.specAttributeId"
                 >
                   <div class="box_centen">
-                    {{ spec.name
-                    }}<span>{{
-                      spec.standPrice === 0 ? "免费" : `¥${spec.standPrice}`
-                    }}</span>
+                    {{ spec.name }}<span v-if="spec.standPrice === 0">免费</span
+                    ><span v-else>¥{{spec.standPrice | formatPrice}}</span>
                   </div>
                 </el-checkbox>
               </el-checkbox-group>
@@ -52,7 +52,8 @@
       <div slot="footer" class="dialog-footer f_c_b">
         <div class="price">
           <div>
-            <span>总价:</span><span><i>¥</i>{{ allPrice | toFixed }}</span>
+            <span>总价:</span
+            ><span><i>¥</i>{{ allPrice | formatPrice }}</span>
           </div>
           <p>已选择{{ checkedAttrs.length }}个商品</p>
         </div>
@@ -100,7 +101,7 @@ export default {
   watch: {
     skuModal(newV, oldV) {
       if (newV) {
-        this.sign = 0
+        this.sign = 0;
         this.selectGoodIndex = 0;
         this.checkedAttrs = [];
         this.getSpecDetail();
@@ -200,9 +201,9 @@ export default {
           goodsIds.push(e.goodsId);
           goodList.push(
             this.specAttrPriceList.find(ele => {
-              if(ele.goodsId == e.goodsId){
-                ele.name = e.name
-                return ele
+              if (ele.goodsId == e.goodsId) {
+                ele.name = e.name;
+                return ele;
               }
             })
           );
@@ -216,7 +217,7 @@ export default {
             this.$emit("toShopCart", goodsIds);
           } else {
             if (this.isSingleChoice || this.sign) {
-              this.$refs.selectClassModal.showModal(goodList,this.sign);
+              this.$refs.selectClassModal.showModal(goodList, this.sign);
             } else {
               this.goPayment(goodList);
             }

+ 9 - 4
src/components/goodsItem/index.vue

@@ -24,17 +24,22 @@
           class="price"
           v-if="!item.specTemplateId || (!item.maxPrice && !item.minPrice)"
         >
-          {{ item.standPrice === 0 ? "免费" : `¥${item.standPrice}` }}
+          <strong v-if="item.standPrice === 0">
+            免费
+          </strong>
+          <span v-else>
+            {{ item.standPrice | formatPrice }}
+          </span>
         </div>
         <div v-else class="price">
-          <span>{{ item.minPrice }}</span>
+          <span>{{ item.minPrice | formatPrice }}</span>
           <template v-if="item.minPrice != item.maxPrice">
             <i>-</i>
-            <span>{{ item.maxPrice }}</span>
+            <span>{{ item.maxPrice | formatPrice }}</span>
           </template>
         </div>
         <div v-if="item.linePrice" class="linePrice">
-          ¥{{ item.linePrice }}
+          ¥{{ item.linePrice | formatPrice }}
         </div>
       </div>
       <div class="course-item__btns">

+ 9 - 5
src/components/header2/index.vue

@@ -144,7 +144,7 @@ export default {
                 case "首页":
                   item.url = "/home";
                   break;
-                case "走进祥粤":
+                case "中正":
                   item.url = "/about";
                   break;
                 case "课程":
@@ -156,7 +156,7 @@ export default {
                 case "直播":
                   item.url = "/live-list";
                   break;
-                case "讲义资料":
+                case "资料":
                   item.url = "/handout-list";
                   break;
                 case "积分商城":
@@ -363,7 +363,7 @@ export default {
   top: 0;
   left: 0;
   height: 70px;
-  width: 100%;
+  width: 100vw;
   box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.1);
   & > .margin_center {
     width: 1400px;
@@ -409,6 +409,7 @@ export default {
   flex: 1;
 }
 .btn_logins {
+  font-weight: bold;
   border-radius: 0px;
   height: 68px;
   border-bottom: 2px solid transparent;
@@ -420,7 +421,7 @@ export default {
   height: 24px;
   width: 150px;
   margin-right: 30px;
-  border: 1px solid #333;
+  border: 1px solid #999;
   border-radius: 100px;
   .el-input-group__prepend {
     border-top-left-radius: 100px;
@@ -468,7 +469,7 @@ export default {
   }
 }
 /deep/ .input_top_status {
-  border: 1px solid #fff;
+  border: 1px solid rgb(137, 173, 216);
   border-radius: 100px;
   .el-input-group__prepend {
     border-top-left-radius: 100px;
@@ -498,4 +499,7 @@ export default {
     color: #fff;
   }
 }
+/deep/ .el-select-dropdown__item.hover, .el-select-dropdown__item:hover{
+    color: #409EFF;
+}
 </style>

+ 83 - 17
src/components/listOption2/index.vue

@@ -7,17 +7,25 @@
       </el-breadcrumb>
     </div>
     <div class="content_tBox">
-      <div v-if="false" class="tabber">
-        <div class="left">关键词:</div>
-        <div class="right" style="align-self: center;margin-top: 10px;">
+      <div class="tabber">
+        <div class="left">快捷搜索:</div>
+        <div class="right" style="align-self: center;margin-top: 5px;">
           <el-input
+            class="input_search"
             clearable
             v-model="params.goodsName"
             :size="size"
-            placeholder="输入关键词"
-            style="width:500px;"
+            placeholder="输入"
+            prefix-icon="el-icon-search"
           ></el-input>
-          <el-button :size="size" @click="init">重置</el-button>
+          <div
+            v-if="false"
+            class="t-button active"
+            style="margin: 0px;border:1px solid rgb(199, 199, 199);background: #fff;color: #666;"
+            @click="init"
+          >
+            重置
+          </div>
         </div>
       </div>
       <div class="tabber">
@@ -63,10 +71,9 @@
         </div>
       </div>
       <div class="tabber">
-        <div class="left">排序条件:</div>
         <div class="right">
           <div
-            class="t-button"
+            class="t-button-text"
             v-for="(item, index) in sort"
             :key="index"
             :class="params.sortType == item.value ? 'active' : null"
@@ -75,8 +82,9 @@
             {{ item.label }}
           </div>
           <span
-            style="float: right;display: inline-block;height: 47px;line-height: 47px;color: #666;"
-            >共找到{{ total }}个结果</span
+            style="padding-right:10px;float: right;display: inline-block;height: 20px;line-height: 20px;color: #666;"
+            >共找到<strong>{{ total }}</strong
+            >个结果</span
           >
         </div>
       </div>
@@ -126,15 +134,15 @@ export default {
       subjectList: [],
       sort: [
         {
-          label: "综合排序",
+          label: "综合",
           value: 1
         },
         {
-          label: "低价优先",
+          label: "低价",
           value: 2
         },
         {
-          label: "高价优先",
+          label: "高价",
           value: 3
         }
       ],
@@ -174,6 +182,8 @@ export default {
     };
   },
   async mounted() {
+    document.body.scrollTop = 0;
+    document.documentElement.scrollTop = 0;
     await this.getEducationTypeList();
     if (this.params.educationId) {
       await this.getBusinessList();
@@ -241,6 +251,8 @@ export default {
     },
     //分页
     currentChange(e) {
+      // document.body.scrollTop = 0;
+      // document.documentElement.scrollTop = 0;
       this.formData.pageNum = e;
       this.search();
     },
@@ -295,7 +307,6 @@ export default {
             this.businessList = [
               { id: "", projectId: "", aliasName: "全部" }
             ].concat(res.rows);
-            console.log(this.businessList, "aa");
           })
           .finally(() => {
             resolve();
@@ -366,7 +377,7 @@ export default {
       }
       & > .left {
         flex-shrink: 0;
-        margin-top: 10px;
+        margin-top: 5px;
         padding: 8px 0;
         width: 80px;
         font-size: 14px;
@@ -388,10 +399,29 @@ export default {
           font-size: 14px;
           background: #f7f9fc;
           color: #666;
-          transition: all 0.2s;
+          transition: all 0.1s;
           &.active {
             color: #fff;
-            background: #3f8dfd;
+            background: rgba(0, 122, 255, 1);
+          }
+          &:hover {
+            color: #fff;
+            background: rgba(0, 122, 255, 1);
+          }
+        }
+        & > .t-button-text {
+          user-select: none;
+          display: inline-block;
+          cursor: pointer;
+          color: #666666;
+          font-size: 14px;
+          transition: all 0.1s;
+          margin-right: 14px;
+          &.active {
+            color: rgb(0, 122, 255);
+          }
+          &:hover {
+            color: rgb(0, 122, 255);
           }
         }
       }
@@ -418,4 +448,40 @@ export default {
 .el-empty {
   margin: 0 auto;
 }
+/deep/ .input_search {
+  width: 200px;
+  height: 26px;
+  line-height: 26px;
+  border-radius: 100px;
+  & > .el-input__inner {
+    width: 200px;
+    height: 26px;
+    line-height: 26px;
+    border-radius: 100px;
+  }
+}
+/deep/ .el-input__icon {
+  line-height: 28px;
+}
+/deep/ .is-background {
+  & > button {
+    border-radius: 4px !important;
+    padding: 0px 24px !important;
+    border: 1px solid #eee;
+    background-color: #fff !important;
+  }
+  .el-pager {
+    & > li {
+      border-radius: 4px !important;
+      padding: 0px 24px;
+      font-weight: 400;
+      border: 1px solid #eee;
+      background-color: #fff !important;
+      border-left: 1px solid #eee !important;
+    }
+    & > .active {
+      background-color: #409eff !important;
+    }
+  }
+}
 </style>

+ 2 - 1
src/components/toolbar/index.vue

@@ -156,7 +156,7 @@ export default {
   background: #fff;
   display: flex;
   flex-direction: column;
-  z-index: 9999;
+  z-index: 2000;
   .item {
     cursor: pointer;
     width: 56px;
@@ -207,6 +207,7 @@ export default {
   &:hover .modu {
     visibility: inherit;
     opacity: 1;
+    box-shadow: 0px 0px 4px 0px rgba(0,0,0,.3);
   }
 }
 .modu {

+ 12 - 0
src/filters/index.js

@@ -24,4 +24,16 @@ export default {
       return '';
     }
   },
+  // 金额格式化
+  formatPrice(price) {
+    price = (price || 0).toLocaleString(
+      "zh-CN",
+      (undefined,
+      {
+        minimumFractionDigits: 2,
+        maximumFractionDigits: 2,
+      })
+    );
+    return price;
+  }
 }

+ 14 - 4
src/pages/bank-list/index.vue

@@ -3,9 +3,10 @@
     <Header @search="search($event)"></Header>
     <div class="bgImg" v-if="header.templateStatus == 2">
       <div class="tits">
-        <h1>精题库</h1>
-        <p>高品质,高精准,助你过关,VIP课程 任你挑选</p>
+        <h1>精题库</h1>
+        <p>好题精选,—道好题胜百道,在线刷题<br/>轻松过关</p>
       </div>
+      <img src="@/assets/new1/bankBGC.png" alt="" />
     </div>
     <section class="section">
       <component
@@ -75,13 +76,13 @@ export default {
 .bgImg {
   position: relative;
   height: 300px;
-  background: url("../../assets/new1/课程banner.png") no-repeat center center;
+  background: repeating-linear-gradient(to right, #358EF6, #00BF77);
   & > .tits {
     position: absolute;
     left: 20%;
     top: 50%;
     transform: translateY(-50%);
-    width: 240px;
+    width: 300px;
     h1 {
       font-size: 40px;
       font-weight: bold;
@@ -89,8 +90,17 @@ export default {
       margin-bottom: 14px;
     }
     p {
+      line-height: 25px;
       color: #fff;
+      letter-spacing: 1px;
     }
   }
+  & > img {
+    height: 238px;
+    position: absolute;
+    right: 20%;
+    top: 50%;
+    transform: translateY(-50%);
+  }
 }
 </style>

+ 3 - 3
src/pages/cart/index.vue

@@ -21,7 +21,7 @@
             </div>
             <div class="total__price">
               总金额:
-              <span>¥{{ total | toFixed }}</span>
+              <span>¥{{ total | formatPrice }}</span>
             </div>
           </div>
           <el-button type="danger" class="pay-btn" @click="pay"
@@ -146,7 +146,7 @@
               width="120"
             >
               <template slot-scope="scope">
-                <a class="goods_price"> ¥{{ scope.row.standPrice }} </a>
+                <a class="goods_price"> ¥{{ scope.row.standPrice | formatPrice }} </a>
                 <div class="goods_price" v-if="scope.row.goodsStatus == 0">
                   该商品已下架
                 </div>
@@ -180,7 +180,7 @@
             </div>
             <div class="total__price">
               总金额:
-              <span>¥{{ total | toFixed }}</span>
+              <span>¥{{ total | formatPrice }}</span>
             </div>
           </div>
           <div class="pay-btn" @click="pay">去支付</div>

+ 13 - 3
src/pages/course-list/index.vue

@@ -4,8 +4,9 @@
     <div class="bgImg" v-if="header.templateStatus == 2">
       <div class="tits">
         <h1>精品课程</h1>
-        <p>高品质,高精准,助你过关,VIP课程 任你挑选</p>
+        <p>高品质,高精准,助你过关,VIP课程<br/>任你挑选</p>
       </div>
+      <img src="@/assets/new1/courseBGC.png" alt="" />
     </div>
     <section class="section">
       <component
@@ -75,13 +76,13 @@ export default {
 .bgImg {
   position: relative;
   height: 300px;
-  background: url("../../assets/new1/课程banner.png") no-repeat center center;
+  background: repeating-linear-gradient(to right, #007aff, #c763fb);
   & > .tits {
     position: absolute;
     left: 20%;
     top: 50%;
     transform: translateY(-50%);
-    width: 240px;
+    width: 300px;
     h1 {
       font-size: 40px;
       font-weight: bold;
@@ -89,8 +90,17 @@ export default {
       margin-bottom: 14px;
     }
     p {
+      line-height: 25px;
       color: #fff;
+      letter-spacing: 1px;
     }
   }
+  & > img {
+    height: 238px;
+    position: absolute;
+    right: 20%;
+    top: 50%;
+    transform: translateY(-50%);
+  }
 }
 </style>

+ 5 - 8
src/pages/goods-detail/bank-detail.vue

@@ -31,22 +31,19 @@
                     class="price"
                     v-if="
                       !goodsDetail.specTemplateId ||
-                        (!goodsDetail.maxPrice && !goodsDetail.minPrice)
+                      (!goodsDetail.maxPrice && !goodsDetail.minPrice)
                     "
                   >
-                    {{
-                      goodsDetail.standPrice === 0
-                        ? "免费"
-                        : `¥${goodsDetail.standPrice}`
-                    }}
+                  <strong v-if="goodsDetail.standPrice === 0">免费</strong>
+                  <span v-else>{{ goodsDetail.standPrice | formatPrice }}</span>
                   </div>
                   <div v-else class="price">
-                    <span>{{ goodsDetail.minPrice }}</span>
+                    <span>{{ goodsDetail.minPrice | formatPrice }}</span>
                     <template
                       v-if="goodsDetail.minPrice != goodsDetail.maxPrice"
                     >
                       <i>-</i>
-                      <span>{{ goodsDetail.maxPrice }}</span>
+                      <span>{{ goodsDetail.maxPrice | formatPrice }}</span>
                     </template>
                   </div>
                   <div class="btns">

+ 4 - 7
src/pages/goods-detail/course-detail.vue

@@ -38,19 +38,16 @@
                       (!goodsDetail.maxPrice && !goodsDetail.minPrice)
                     "
                   >
-                    {{
-                      goodsDetail.standPrice === 0
-                        ? "免费"
-                        : `¥${goodsDetail.standPrice}`
-                    }}
+                  <strong v-if="goodsDetail.standPrice === 0">免费</strong>
+                  <span v-else>{{ goodsDetail.standPrice | formatPrice }}</span>
                   </div>
                   <div v-else class="price">
-                    <span>{{ goodsDetail.minPrice }}</span>
+                    <span>{{ goodsDetail.minPrice | formatPrice }}</span>
                     <template
                       v-if="goodsDetail.minPrice != goodsDetail.maxPrice"
                     >
                       <i>-</i>
-                      <span>{{ goodsDetail.maxPrice }}</span>
+                      <span>{{ goodsDetail.maxPrice | formatPrice}}</span>
                     </template>
                   </div>
                   <div class="btns">

+ 5 - 8
src/pages/goods-detail/handout-detail.vue

@@ -31,22 +31,19 @@
                     class="price"
                     v-if="
                       !goodsDetail.specTemplateId ||
-                        (!goodsDetail.maxPrice && !goodsDetail.minPrice)
+                      (!goodsDetail.maxPrice && !goodsDetail.minPrice)
                     "
                   >
-                    {{
-                      goodsDetail.standPrice === 0
-                        ? "免费"
-                        : `¥${goodsDetail.standPrice}`
-                    }}
+                  <strong v-if="goodsDetail.standPrice === 0">免费</strong>
+                  <span v-else>{{ goodsDetail.standPrice | formatPrice }}</span>
                   </div>
                   <div v-else class="price">
-                    <span>{{ goodsDetail.minPrice }}</span>
+                    <span>{{ goodsDetail.minPrice | formatPrice }}</span>
                     <template
                       v-if="goodsDetail.minPrice != goodsDetail.maxPrice"
                     >
                       <i>-</i>
-                      <span>{{ goodsDetail.maxPrice }}</span>
+                      <span>{{ goodsDetail.maxPrice | formatPrice }}</span>
                     </template>
                   </div>
                   <div class="btns">

+ 6 - 8
src/pages/goods-detail/live-detail.vue

@@ -31,26 +31,24 @@
                     {{ courseList.length }} 课程
                     {{ goodsDetail.classHours || "-" }}学时
                   </div>
+                 
                   <div
                     class="price"
                     v-if="
                       !goodsDetail.specTemplateId ||
-                        (!goodsDetail.maxPrice && !goodsDetail.minPrice)
+                      (!goodsDetail.maxPrice && !goodsDetail.minPrice)
                     "
                   >
-                    {{
-                      goodsDetail.standPrice === 0
-                        ? "免费"
-                        : `¥${goodsDetail.standPrice}`
-                    }}
+                  <strong v-if="goodsDetail.standPrice === 0">免费</strong>
+                  <span v-else>{{ goodsDetail.standPrice | formatPrice }}</span>
                   </div>
                   <div v-else class="price">
-                    <span>{{ goodsDetail.minPrice }}</span>
+                    <span>{{ goodsDetail.minPrice | formatPrice }}</span>
                     <template
                       v-if="goodsDetail.minPrice != goodsDetail.maxPrice"
                     >
                       <i>-</i>
-                      <span>{{ goodsDetail.maxPrice }}</span>
+                      <span>{{ goodsDetail.maxPrice | formatPrice }}</span>
                     </template>
                   </div>
                   <div class="btns">

+ 14 - 4
src/pages/handout-list/index.vue

@@ -3,9 +3,10 @@
     <Header @search="search($event)"></Header>
     <div class="bgImg" v-if="header.templateStatus == 2">
       <div class="tits">
-        <h1>精品讲义</h1>
-        <p>高品质,高精准,助你过关,VIP课程 任你挑选</p>
+        <h1>资料</h1>
+        <p>直击核心,高质量,助你一臂之力<br/>快速获取</p>
       </div>
+      <img src="@/assets/new1/handoutBGC.png" alt="" />
     </div>
     <section class="section">
       <component
@@ -75,13 +76,13 @@ export default {
 .bgImg {
   position: relative;
   height: 300px;
-  background: url("../../assets/new1/课程banner.png") no-repeat center center;
+  background: repeating-linear-gradient(to right, #00A3FF, #AC00BF);
   & > .tits {
     position: absolute;
     left: 20%;
     top: 50%;
     transform: translateY(-50%);
-    width: 240px;
+    width: 300px;
     h1 {
       font-size: 40px;
       font-weight: bold;
@@ -89,7 +90,16 @@ export default {
       margin-bottom: 14px;
     }
     p {
+      line-height: 25px;
       color: #fff;
+      letter-spacing: 1px;
     }
   }
+  & > img {
+    height: 238px;
+    position: absolute;
+    right: 20%;
+    top: 50%;
+    transform: translateY(-50%);
+  }
 }</style>

+ 105 - 45
src/pages/home2/index.vue

@@ -64,6 +64,15 @@
         <div class="hbox">
           <img src="@/assets/new1/推荐课程.png" alt="" />
           <h2>推荐课程</h2>
+          <el-tabs v-model="courseRecommendId">
+            <el-tab-pane
+              v-for="(item, index) in courseName"
+              :key="index"
+              :label="item.name"
+              :name="item.recommendId"
+              @click="courseRecommendId = item.recommendId"
+            ></el-tab-pane>
+          </el-tabs>
         </div>
         <i @click="go('/course-list')">更多 ></i>
       </div>
@@ -71,10 +80,10 @@
         <el-empty
           style="margin: 0 auto;"
           description="暂无推荐课程"
-          v-if="!goodsList1.length"
+          v-if="!coursefilter(courseName, courseRecommendId).length"
         ></el-empty>
         <GoodsItemNew
-          v-for="(item, index) in goodsList1"
+          v-for="(item, index) in coursefilter(courseName, courseRecommendId)"
           v-show="index < 4"
           :key="index"
           :goodsItem="item"
@@ -86,6 +95,15 @@
         <div class="hbox">
           <img src="@/assets/new1/推荐题库.png" alt="" />
           <h2>推荐题库</h2>
+          <el-tabs v-model="bankRecommendId">
+            <el-tab-pane
+              v-for="(item, index) in bankName"
+              :key="index"
+              :label="item.name"
+              :name="item.recommendId"
+              @click="bankRecommendId = item.recommendId"
+            ></el-tab-pane>
+          </el-tabs>
         </div>
         <i @click="go('/bank-list')">更多 ></i>
       </div>
@@ -93,10 +111,10 @@
         <el-empty
           style="margin: 0 auto;"
           description="暂无推荐题库"
-          v-if="!goodsList2.length"
+          v-if="!coursefilter(bankName, bankRecommendId).length"
         ></el-empty>
         <GoodsItemNew
-          v-for="(item, index) in goodsList2"
+          v-for="(item, index) in coursefilter(bankName, bankRecommendId)"
           v-show="index < 4"
           :key="index"
           :goodsItem="item"
@@ -176,6 +194,10 @@ export default {
   components: { ToolBar, Header, top, Footer, GoodsItemNew },
   data() {
     return {
+      courseRecommendId: null,
+      bankRecommendId: null,
+      courseName: [],
+      bankName: [],
       nav_beauf: true,
       workMsg: [
         {
@@ -260,8 +282,8 @@ export default {
             remark: [
               "广州市建筑置业有限公司",
               "生产技术部/工程部/资料管理部副部长",
-              "广州市市政集团培训中心高级师",
-              "广州大学市政技术学院特聘师",
+              "广州市市政集团培训中心高级师",
+              "广州大学市政技术学院特聘师",
               "专业从事建筑工程竣工验收/技术资料管理",
               "建筑工程施工安全资料管理"
             ]
@@ -350,10 +372,16 @@ export default {
           }
         ]
       ],
-      goodsList1: [], //推荐课程
-      goodsList2: [] //推荐题库
     };
   },
+  computed: {
+    coursefilter: function() {
+      return function(a1, a2) {
+        let b = a1.find(i => i.recommendId == a2) || {};
+        return b.goodsList || [];
+      };
+    }
+  },
   mounted() {
     this.courseLists();
     window.addEventListener("scroll", this.scrollFunc);
@@ -384,39 +412,32 @@ export default {
         .then(async res => {
           if (res.code == 200 && res.rows.length) {
             let list = res.rows || [];
-            //课程
-            var a = list.find(i => i.type == 1);
-            this.goodsList1 = a.goodsList
-              .sort((a, b) => a.sort - b.sort)
-              .map(i => {
-                return Object.assign(
-                  {
-                    businessId: a.businessId,
-                    businessName: a.businessName,
-                    educationName: a.educationName,
-                    educationTypeId: a.educationTypeId,
-                    projectName: a.projectName,
-                    projectId: a.projectId
-                  },
-                  i
-                );
-              });
-            var b = list.find(i => i.type == 2);
-            this.goodsList2 = b.goodsList
-              .sort((a, b) => a.sort - b.sort)
-              .map(i => {
-                return Object.assign(
-                  {
-                    businessId: b.businessId,
-                    businessName: b.businessName,
-                    educationName: b.educationName,
-                    educationTypeId: b.educationTypeId,
-                    projectName: b.projectName,
-                    projectId: b.projectId
-                  },
-                  i
-                );
-              });
+            list = list.sort((a,b) => a.sort - b.sort)
+            list.forEach(item => {
+              item.recommendId = item.recommendId + "";
+              item.goodsList = item.goodsList
+                .sort((a, b) => {
+                  return a.sort - b.sort;
+                })
+                .map(i => {
+                  return Object.assign(
+                    {
+                      aliasName:item.aliasName,
+                      businessId: item.businessId,
+                      businessName: item.businessName,
+                      educationName: item.educationName,
+                      educationTypeId: item.educationTypeId,
+                      projectName: item.projectName,
+                      projectId: item.projectId
+                    },
+                    i
+                  );
+                });
+            });
+            this.courseName = list.filter(i => i.type == 1 && i.status == 1);
+            this.courseRecommendId = this.courseName[0].recommendId || null;
+            this.bankName = list.filter(i => i.type == 2 && i.status == 1);
+            this.bankRecommendId = this.bankName[0].recommendId || null;
           }
         });
     }
@@ -526,14 +547,18 @@ export default {
       & > .lf {
         flex: 1;
         h1 {
-          font-size: 24px;
+          font-size: 28px;
           color: #fff;
           font-weight: 500;
           margin-bottom: 4px;
+          text-shadow: 1px 1px 5px rgba(85, 85, 85, 0.5);
         }
         p {
           color: #fff;
           margin-bottom: 8px;
+          line-height: 25px;
+          letter-spacing: 2px;
+          text-shadow: 1px 1px 5px rgba(85, 85, 85, 0.5);
         }
         i {
           border-radius: 24px;
@@ -542,6 +567,7 @@ export default {
           padding: 0px 6px;
           font-style: normal;
           font-size: 14px;
+          box-shadow: 1px 1px 5px 0px rgba(85, 85, 85, 0.5);
         }
       }
       & > img {
@@ -573,14 +599,48 @@ export default {
           font-size: 24px;
           font-style: italic;
         }
+
+        /deep/ .el-tabs {
+          margin: 0px 40px;
+          width: 900px;
+          & > .el-tabs__header {
+            margin-bottom: 0px;
+            & > .el-tabs__nav-wrap::after {
+              display: none;
+            }
+          }
+        }
+        /deep/ .el-tabs__active-bar {
+          display: none;
+        }
+        /deep/ .el-tabs__item {
+          height: 30px;
+          line-height: 30px;
+        }
+        /deep/ .el-tabs__item.is-active {
+          color: #007aff !important;
+          font-weight: bold;
+        }
+        /deep/ .el-tabs__item:hover {
+          color: #007aff !important;
+          font-weight: bold;
+        }
+        /deep/ .el-tabs__nav-prev {
+          height: 30px !important;
+          line-height: 30px !important;
+        }
+        /deep/ .el-tabs__nav-next {
+          height: 30px !important;
+          line-height: 30px !important;
+        }
       }
       & > i {
         cursor: pointer;
         font-style: normal;
         color: #7f7f7f;
-        &:hover{
+        &:hover {
           font-weight: bold;
-          color: rgb(0,122,255);
+          color: rgb(0, 122, 255);
         }
       }
     }
@@ -640,7 +700,7 @@ export default {
       color: #fff;
       background-color: rgb(51, 149, 255);
       li {
-        padding-bottom: 8px;
+        line-height: 30px;
       }
     }
   }

+ 7 - 13
src/pages/home2/top.vue

@@ -12,7 +12,6 @@
               class="tab_li"
               v-for="(item, index) in typeList"
               :key="index"
-              @mouseenter="handleMouseEnter(index)"
             >
               <div class="tops">
                 <span>{{ item.educationName }}</span>
@@ -29,11 +28,11 @@
                 <div style="clear:both;"></div>
               </ul>
               <div class="ri_p">
-                <h4>{{ typeList[eduIndex].educationName }}</h4>
+                <h4>{{ typeList[index].educationName }}</h4>
                 <div class="fgx"></div>
                 <ul class="scroll_style">
                   <li
-                    v-for="(it, ix) in typeList[eduIndex].businessList"
+                    v-for="(it, ix) in typeList[index].businessList"
                     :key="ix"
                     @click="goCourse(it)"
                   >
@@ -145,7 +144,6 @@ export default {
     return {
       recordList: {},
       active: 1,
-      eduIndex: 0,
       typeList: [],
       swiperOptions: {
         bannerList: [],
@@ -255,12 +253,6 @@ export default {
         });
       }
     },
-    handleMouseEnter(index) {
-      this.eduIndex = index;
-    },
-    handleMouseLeave(item) {
-      console.log(item, "leave");
-    },
     goCourse(item) {
       // if (item.topicId) {
       //   this.$router.push({
@@ -414,7 +406,7 @@ export default {
           overflow: auto;
           & > .tab_li {
             padding: 16px 0px;
-            margin: 0px 20px;
+            margin: 0px;
             color: #fff;
             border-bottom: 1px solid rgb(86, 89, 92);
             &:hover {
@@ -428,7 +420,7 @@ export default {
               left: 300px;
               width: 580px;
               height: 400px;
-              transition: all 0.3s;
+              // transition: all 0.3s;
               opacity: 0;
               padding: 15px 30px 0px;
               display: flex;
@@ -444,7 +436,7 @@ export default {
                   user-select: none;
                   cursor: pointer;
                   float: left;
-                  margin: 0px 20px 20px 0px;
+                  margin: 0px 36px 20px 0px;
                   color: #007aff;
                   &:hover {
                     font-weight: bold;
@@ -461,6 +453,7 @@ export default {
               border-bottom: none;
             }
             & > .tops {
+              padding: 0px 20px;
               user-select: none;
               display: flex;
               align-items: center;
@@ -469,6 +462,7 @@ export default {
               font-weight: bold;
             }
             & > ul {
+              padding: 0px 20px;
               & > li {
                 margin: 0px 10px 6px 0px;
                 float: left;

+ 14 - 4
src/pages/live-list/index.vue

@@ -3,9 +3,10 @@
     <Header @search="search($event)"></Header>
     <div class="bgImg" v-if="header.templateStatus == 2">
       <div class="tits">
-        <h1>精品直播</h1>
-        <p>高品质,高精准,助你过关,VIP课程 任你挑选</p>
+        <h1>直播通关</h1>
+        <p>课程直播,名师指导,精准解答<br/>快速通关</p>
       </div>
+      <img src="@/assets/new1/liveBGC.png" alt="" />
     </div>
     <section class="section">
       <component
@@ -75,13 +76,13 @@ export default {
 .bgImg {
   position: relative;
   height: 300px;
-  background: url("../../assets/new1/课程banner.png") no-repeat center center;
+  background: repeating-linear-gradient(to right, #007aff, #00bfbf);
   & > .tits {
     position: absolute;
     left: 20%;
     top: 50%;
     transform: translateY(-50%);
-    width: 240px;
+    width: 300px;
     h1 {
       font-size: 40px;
       font-weight: bold;
@@ -89,8 +90,17 @@ export default {
       margin-bottom: 14px;
     }
     p {
+      line-height: 25px;
       color: #fff;
+      letter-spacing: 1px;
     }
   }
+  & > img {
+    height: 238px;
+    position: absolute;
+    right: 20%;
+    top: 50%;
+    transform: translateY(-50%);
+  }
 }
 </style>

+ 2 - 2
src/pages/payment/index.vue

@@ -25,7 +25,7 @@
                 :key="goodsIndex"
               >
                 商品名称:{{ goodsItem.goodsName }}
-                <span>应付金额:{{ goodsItem.standPrice | toFixed }}元</span>
+                <span>应付金额:{{ goodsItem.standPrice | formatPrice }}元</span>
                 <Class-time-tip :gradeId="goodsItem.gradeId"></Class-time-tip>
               </div>
             </div>
@@ -48,7 +48,7 @@
 
           <div class="payment-btn">
             应付金额:
-            <div class="price">{{ total | toFixed }}</div>
+            <div class="price">{{ total | formatPrice }}</div>
             <el-button type="danger" class="btn" id="pay" @click="pay"
               >立即支付</el-button
             >

+ 3 - 3
src/pages/person-center/my-order/index.vue

@@ -52,7 +52,7 @@
                     <div class="title">{{ items.goodsName }}</div>
                     <div class="desc" v-if="item.orderFrom !== 6">
                       应付金额:
-                      <span class="note">¥{{ items.goodsRealPrice }}</span>
+                      <span class="note">¥{{ items.goodsRealPrice | formatPrice }}</span>
                     </div>
                   </div>
                   <div
@@ -83,7 +83,7 @@
               <div class="price-wrap">
                 <div class="btns" v-if="item.orderFrom !== 6">
                   <div class="price-text">实付金额</div>
-                  <div class="price-number">¥{{ item.payPrice }}</div>
+                  <div class="price-number">¥{{ item.payPrice | formatPrice }}</div>
                 </div>
               </div>
               <div
@@ -154,7 +154,7 @@
                   <template v-if="!item.wxpayRefundId"> 退款失败 </template>
                   <template v-else>
                     <div class="price-text">已退款</div>
-                    <div class="price-number">¥{{ item.refundFee }}</div>
+                    <div class="price-number">¥{{ item.refundFee | formatPrice }}</div>
                   </template>
                 </div>
               </div>

+ 50 - 40
src/router/index.js

@@ -10,10 +10,20 @@ let bankAdmin = ['/person-center/bank-record', '/person-center/my-bank/index', '
 let canToBank = null;
 let courseAdmin = ['/my-course-detail/', '/course-exam/']
 let canToCourse = null;
-const signLoginPage = ['/my-course-detail', '/my-course','/my-bank', '/my-live', '/living-room']
+let doScrollRouterList = ['/course-list', '/bank-list', '/live-list', '/handout-list', '/points-list']
+const signLoginPage = ['/my-course-detail', '/my-course', '/my-bank', '/my-live', '/living-room']
 const router = new Router({
   mode: 'history',
-  scrollBehavior: () => ({ y: 0 }),
+  scrollBehavior(to, from, savedPosition) {
+     if (doScrollRouterList.includes(to.path)) {
+      return {}
+    } else {
+      return {
+        x: 0,
+        y: 0
+      }
+    }
+  },
   routes: [
     {
       path: '*',
@@ -54,7 +64,7 @@ const router = new Router({
       name: '登录',
       component: resolve => require(['@/pages/login/index'], resolve),
       meta: {
-        title: + '-建造师造价师在线教育培训平台报名报考',
+        title: '-建造师造价师在线教育培训平台报名报考',
         content: {
           keywords: + '-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
           description: + '-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
@@ -66,7 +76,7 @@ const router = new Router({
       name: '走进中正',
       component: resolve => require(['@/pages/about/index'], resolve),
       meta: {
-        title: + '-建造师造价师在线教育培训报名报考平台',
+        title: '-建造师造价师在线教育培训报名报考平台',
         content: {
           keywords: + '-建造师造价师在线教育培训平台报名报考',
           description: + '-建造师造价师在线教育培训平台报名报考'
@@ -78,7 +88,7 @@ const router = new Router({
       name: '冲刺秘籍大礼包',
       component: resolve => require(['@/pages/packPage/index'], resolve),
       meta: {
-        title: + '-建造师造价师在线教育培训报名报考平台',
+        title: '-建造师造价师在线教育培训报名报考平台',
         content: {
           keywords: + '-建造师造价师在线教育培训平台报名报考',
           description: + '-建造师造价师在线教育培训平台报名报考'
@@ -95,7 +105,7 @@ const router = new Router({
       name: '支付',
       component: resolve => require(['@/pages/payment/index'], resolve),
       meta: {
-        title: + '-建造师造价师在线教育培训平台报名报考',
+        title: '-建造师造价师在线教育培训平台报名报考',
         content: {
           keywords: + '-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
           description: + '-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
@@ -107,7 +117,7 @@ const router = new Router({
       name: '支付成功',
       component: resolve => require(['@/pages/payment-success/index'], resolve),
       meta: {
-        title: + '-建造师造价师在线教育培训平台报名报考',
+        title: '-建造师造价师在线教育培训平台报名报考',
         content: {
           keywords: + '-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
           description: + '-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
@@ -119,7 +129,7 @@ const router = new Router({
       name: '课程列表',
       component: resolve => require(['@/pages/course-list/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -131,7 +141,7 @@ const router = new Router({
       name: '讲义资料',
       component: resolve => require(['@/pages/handout-list/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -143,7 +153,7 @@ const router = new Router({
       name: '积分商城列表',
       component: resolve => require(['@/pages/points-list/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -155,7 +165,7 @@ const router = new Router({
       name: '题库列表',
       component: resolve => require(['@/pages/bank-list/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -168,7 +178,7 @@ const router = new Router({
       name: '直播列表',
       component: resolve => require(['@/pages/live-list/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -180,7 +190,7 @@ const router = new Router({
       name: '课程详情',
       component: resolve => require(['@/pages/goods-detail/course-detail'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -192,7 +202,7 @@ const router = new Router({
       name: '题库详情',
       component: resolve => require(['@/pages/goods-detail/bank-detail'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -204,7 +214,7 @@ const router = new Router({
       name: '直播详情',
       component: resolve => require(['@/pages/goods-detail/live-detail'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -216,7 +226,7 @@ const router = new Router({
       name: '讲义资料详情',
       component: resolve => require(['@/pages/goods-detail/handout-detail'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -228,7 +238,7 @@ const router = new Router({
       name: '课程详情',
       component: resolve => require(['@/pages/course-detail/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -240,7 +250,7 @@ const router = new Router({
       name: '课程详情',
       component: resolve => require(['@/pages/course-detail/indexCopy'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -252,7 +262,7 @@ const router = new Router({
       name: '课程详情',
       component: resolve => require(['@/pages/handout-detail/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -265,7 +275,7 @@ const router = new Router({
       name: '直播详情',
       component: resolve => require(['@/pages/live-detail/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -278,7 +288,7 @@ const router = new Router({
       name: '直播页面详情1',
       component: resolve => require(['@/pages/living-room/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -291,7 +301,7 @@ const router = new Router({
       name: '课程详情',
       component: resolve => require(['@/pages/mock-countdown/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -304,7 +314,7 @@ const router = new Router({
       name: '课程详情',
       component: resolve => require(['@/pages/mock-report/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -316,7 +326,7 @@ const router = new Router({
       name: '试卷报告',
       component: resolve => require(['@/pages/course-report/index'], resolve),
       meta: {
-        title: + '-建造师造价师在线教育培训平台报名报考',
+        title: '-建造师造价师在线教育培训平台报名报考',
         content: {
           keywords: + '-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
           description: + '-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
@@ -329,7 +339,7 @@ const router = new Router({
       name: '试卷报告',
       component: resolve => require(['@/pages/bank-report/index'], resolve),
       meta: {
-        title: + '-建造师造价师在线教育培训平台报名报考',
+        title: '-建造师造价师在线教育培训平台报名报考',
         content: {
           keywords: + '-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
           description: + '-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
@@ -341,7 +351,7 @@ const router = new Router({
       name: '做题',
       component: resolve => require(['@/pages/course-exam/index'], resolve),
       meta: {
-        title: + '-一二级建造师、工程师、建筑师视频课程、免费直播课',
+        title: '-一二级建造师、工程师、建筑师视频课程、免费直播课',
         content: {
           keywords: + '-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
           description: + '-提供一二级建造师视频学习、免费直播公开课  ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
@@ -353,7 +363,7 @@ const router = new Router({
       name: '做题',
       component: resolve => require(['@/pages/bank-exam/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -365,7 +375,7 @@ const router = new Router({
       name: '模考',
       component: resolve => require(['@/pages/mock-exam/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -378,7 +388,7 @@ const router = new Router({
       name: '继续做题',
       component: resolve => require(['@/pages/bank-exam-continue/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -390,7 +400,7 @@ const router = new Router({
       name: '全部解析',
       component: resolve => require(['@/pages/bank-exam-all-explain/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -402,7 +412,7 @@ const router = new Router({
       name: '错题解析',
       component: resolve => require(['@/pages/bank-exam-wrong-explain/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -414,7 +424,7 @@ const router = new Router({
       name: '全部解析',
       component: resolve => require(['@/pages/mock-exam-all-explain/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -426,7 +436,7 @@ const router = new Router({
       name: '错题解析',
       component: resolve => require(['@/pages/mock-exam-wrong-explain/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -438,7 +448,7 @@ const router = new Router({
       name: '题目解析',
       component: resolve => require(['@/pages/bank-exam-explain/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -451,7 +461,7 @@ const router = new Router({
       name: '错题',
       component: resolve => require(['@/pages/subject/wrong-type-bank'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -463,7 +473,7 @@ const router = new Router({
       name: '错题',
       component: resolve => require(['@/pages/subject/wrong-bank'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -475,7 +485,7 @@ const router = new Router({
       name: '收藏',
       component: resolve => require(['@/pages/subject/collect-type-bank'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -487,7 +497,7 @@ const router = new Router({
       name: '收藏',
       component: resolve => require(['@/pages/subject/collect-bank'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -499,7 +509,7 @@ const router = new Router({
       name: '商品专题',
       component: resolve => require(['@/pages/goodsTopic/index'], resolve),
       meta: {
-        title: + '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
+        title: '-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
         content: {
           keywords: + '-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
           description: + '-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
@@ -744,8 +754,8 @@ const originalPush = Router.prototype.push
 Router.prototype.push = function push(location) {
   return originalPush.call(this, location).catch((err) => err)
 }
-const originalReplace = Router.prototype.replace
 
+const originalReplace = Router.prototype.replace
 Router.prototype.replace = function replace(location) {
   return originalReplace.call(this, location).catch(err => err)
 }

+ 7 - 11
src/style.css

@@ -23,26 +23,22 @@ h6 {
 }
 
 body::-webkit-scrollbar {
-  width: 8px;
-  height: 9px;
+  /* width: 18px; */
+  /* height: 9px; */
 }
 /*定义滚动条轨道 内阴影+圆角*/
 body::-webkit-scrollbar-track {
-  background-color: inherit;
+  /* background-color: inherit;
   border: none;
-  /* margin: 6px; */
-  border-radius: 10px;
-  /* -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
-    background-color: #F5F5F5; */
+  border-radius: 10px; */
 }
 /*定义滑块 内阴影+圆角*/
 body::-webkit-scrollbar-thumb {
-  border-radius: 10px;
+  /* border-radius: 10px;
   position: relative;
   right: 2px;
-  /*-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);*/
-  background-color: #c6c6cd;
-  width: 6px;
+  background-color: #c6c6cd; */
+  /* width: 16px; */
 }
 a {
   text-decoration: none;