浏览代码

首页改版中1

zhangyujun 3 年之前
父节点
当前提交
0eaa0a5e3a

+ 13 - 0
src/api/modules/json.js

@@ -0,0 +1,13 @@
+import request from '../request'
+const json = {
+    markdown(name) {
+        return request({
+            url: `https://jpcj-h5.zzxcx.net/markdown/${name}.json`,
+            method: 'get'
+        })
+
+    }
+
+}
+export default json
+

+ 15 - 6
src/api/modules/open.js

@@ -1,9 +1,18 @@
 import request from '../request'
-
+const openBaseUrl = process.env.NODE_ENV==='development'?"https://jpcj-admin1.zzxcx.net/twzd-admin/open-api":"https://jpcj-admin.zzxcx.net/twzd-admin/open-api"
 const open = {
-    qustionInfoSelectTestQuestionInfo(params) {
+    //open-api/teachingVideo/info/treeList
+    //获取视频列表
+    teachingVideoInfoTreeList(params){
+        return request({
+            url:"open-api/teachingVideo/info/treeList",
+            params
+        })
+
+    },
+    questionInfoSelectTestQuestionInfo(params) {
         return request({
-            url: "https://jpcj-admin1.zzxcx.net/twzd-admin/open-api/qustion/info/selectTestQuestionInfo",
+            url: openBaseUrl+"/question/info/selectTestQuestionInfo",
             method: "GET",
             params
         })
@@ -11,19 +20,19 @@ const open = {
     },
     lightingCombinationList() {
         return request({
-            url: "https://jpcj-admin1.zzxcx.net/twzd-admin/open-api/lighting/combination/list",
+            url: openBaseUrl+"/lighting/combination/list",
             method: "GET"
         })
     },
     lightingCombinationId(id) {
         return request({
-            url: "https://jpcj-admin1.zzxcx.net/twzd-admin/open-api/lighting/combination/" + id,
+            url: openBaseUrl+"/lighting/combination/" + id,
             method: "GET",
         })
     },
     lightingItemList(){
         return request({
-            url: "https://jpcj-admin1.zzxcx.net/twzd-admin/open-api/lighting/item/list",
+            url: openBaseUrl+"/lighting/item/list",
             method: "GET",
         })
     }

二进制
src/assets/img/banner1.jpg


+ 349 - 0
src/otherPages/marked/index.vue

@@ -0,0 +1,349 @@
+<template>
+  <div>
+    <div
+      v-for="(oneLevel, oneLevelIndex) in jsonData"
+      :key="oneLevelIndex"
+      class="flex-box"
+    >
+      <div class="one-level-title">
+        <m-icon type="biaotizhuangshi3" />
+        {{ oneLevel.title }}
+        <m-icon class="icon-right" type="biaotizhuangshi3" />
+      </div>
+      <div v-if="oneLevel.explain" class="one-level-explain box-set">
+        {{ oneLevel.explain }}
+      </div>
+      <div
+        class="two-flex-box"
+        :key="twoLevelIndex"
+        v-for="(twoLevel, twoLevelIndex) in oneLevel.twoLevel"
+      >
+        <div class="two-level-title">
+          <m-icon type="biaotizhuangshi1" />
+          {{ twoLevel.title }}
+          <m-icon class="icon-right" type="biaotizhuangshi1" />
+        </div>
+        <div v-if="twoLevel.explain" class="box-set">
+          {{ twoLevel.explain }}
+        </div>
+        <div
+          class="box-set three-level-explain"
+          v-for="(threeLevel, threeLevelIndex) in twoLevel.threeLevel"
+          :key="threeLevelIndex"
+        >
+          <div class="three-level-title">{{ threeLevel.title }}</div>
+          <div
+            class="four-level-explain"
+            v-for="(item, index) in threeLevel.list"
+            :key="item"
+          >
+            <span class="four-level-title">{{ Number(index) + 1 }}</span>
+            <div>
+              {{ item }}
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@/api/'
+export default {
+  data() {
+    return {
+      jsonData: [
+        {
+          title: "报名",
+          explain:
+            "首先第一步,带齐身份证等材料到驾校报名学车,本地学员准备身份证原件和复印件和一寸免冠照片。需要注意:报名后十天才可以预约科目一。",
+        },
+        {
+          title: "科目一",
+          explain:
+            "待科目一学的差不多了,学时也满了,学员就可以在车管所网站上预约科目一考试,考场和考试时间都可以自主选择,科目一考试是电脑无纸化考试形式,主要考核交通法律、法规的基本知识。考试当天必须携带身份证原件。考试当天共有2次考试机会,2次都没有通过则必须重新预约考试。科目一考试时长45分钟,每题1分,90-100分为合格。成绩合格的考生,须持本人身份证在考场内出口位置刷身份证,用签名笔签名,并点击确认签名(考生无须取纸质成绩单)",
+        },
+        {
+          title: "科目二",
+          explain:
+            "科目二的具体考试项目包括:直角转弯、曲线行驶、坡道定点停车、侧方停车、倒车入库(部分地区有增加项目)。总分为100分,考试大型客车、牵引车、城市公交车、中型客车、大型货车准驾车型的,成绩达到90分的为合格,其他准驾车型的成绩达到80分的为合格。学员学车时必须严格记录学时,学时满后才有资格预约考科目二,考试当天共有2次考试机会,2次都没有通过则必须重新预约考试。",
+          twoLevel: [
+            {
+              title: "科目二扣分标准",
+              explain: "不同地方评判标准和扣分标准不同,仅供参考",
+              threeLevel: [
+                {
+                  title: "通用扣分标准",
+                  list: [
+                    "未系安全带:扣100分",
+                    "未关好车门:扣100分",
+                    "启动发动机时档位未在空档:扣100分",
+                    "未打转向灯(包括起步、变道、超车、转弯、靠边停车);转向灯打开未超三秒;忘记关转向灯或转向灯使用错误:扣10分",
+                    "熄火一次:扣10分",
+                  ],
+                },
+                {
+                  title: "侧方位停车扣分标准",
+                  list: [
+                    "车辆入库停止后车身出线:扣100分",
+                    "出库时不使用或错误使用转向灯:扣10分",
+                    "项目完成时间超过90秒:扣100分",
+                    "行驶中车身触碰库位边线:扣10分/次",
+                    "行驶中车轮触轧车道边线:扣10分/次",
+                    "中途停车超过2秒:扣5分/次",
+                  ],
+                },
+                {
+                  title: "侧方停车扣分标准",
+                  list: [
+                    "项目完成时间超过210秒:扣100分(扣分重点)",
+                    "不按规定路线、顺序行驶:扣100分",
+                    "倒车前未将前轮均触点均驶过控制线:100分",
+                    "中途停车超2秒:扣5分/次",
+                    "倒库不入:扣100分",
+                    "车身出线:扣100分",
+                  ],
+                },
+                {
+                  title: "曲线行驶扣分标准",
+                  list: [
+                    "车轮压到边缘线:扣100分(原先为扣20分,新标准调整)",
+                    "中途停车超2秒:扣100分",
+                  ],
+                },
+                {
+                  title: "直角转弯扣分标准",
+                  list: [
+                    "车轮压到边缘线:扣100分(原先为扣20分,新标准调整)",
+                    "中途停车超2s:扣5分/次",
+                  ],
+                },
+                {
+                  title: "坡道定点停车扣分标准",
+                  list: [
+                    "起步未开左转向灯:扣10分",
+                    "起步时间超30秒:扣100分(扣分重点)",
+                    "行驶过程中车轮轧到边线:扣100分",
+                    "车辆停止后,车辆前保险杠或摩托车前轴未定于桩杆线上,前后未超过50cm:扣10分",
+                    "车辆停止后,车辆前保险杠或摩托车前轴未定于桩杆线上,前后超过50cm:扣100分",
+                    "车辆停止后,车身至车道边缘线超过30cm未超50cm:扣10分",
+                    "车辆停止后,车身至车道边缘线超过50cm:扣100分",
+                    "起步时,溜车距离未超30cm:扣10分",
+                    "起步时,溜车距离超过50cm:扣100分",
+                  ],
+                },
+              ],
+            },
+          ],
+        },
+        {
+          title: "科目三",
+          explain:
+            "科目二考试合格后,学员就便可进行科目三路考的训练啦,科目三训练里程最低不得少于300公里,科目三考试项目至少包含:夜间灯光模拟操作、上车准备、直线行驶、百米加减档等16个考试。总分为100分,成绩达到90分的为合格,当天共有2次考试机会,2次都没有通过则必须重新预约考试。",
+          twoLevel: [
+            {
+              title: "科目三扣分标准",
+              explain: "不同地方评判标准和扣分标准不同,仅供参考",
+              threeLevel: [
+                {
+                  title: "直接判定为不合格情况",
+                  list: [
+                    "不按规定使用安全带",
+                    "遮挡、关闭车内音视频监控设备",
+                    "不按考试员指令驾驶",
+                    "起步时车辆后溜距离大于30cm",
+                    "使用挡位与车速长时间不匹配,造成车辆发动机转速过高或过低",
+                    "车辆在行驶中连续2次挂挡不进",
+                    "行驶中空挡滑行",
+                    "不按交通信号灯、标志、标线行驶",
+                    "不按规定速度行驶",
+                    "车辆行驶中骑轧道路中心实线或者车道边缘实线",
+                    "长时间骑轧车道分界线行驶(时间大于15秒)",
+                    "连续变更两条或两条以上车道",
+                    "将车辆停在人行横道、网状线内等禁止停车区域",
+                    "考生未按照预约时间参加考试",
+                  ],
+                },
+                {
+                  title: "出现以下情况扣10分",
+                  list: [
+                    "起步时车辆后溜,但后溜距离小于30cm",
+                    "起步或行驶中挂错挡",
+                    "起步、转向、变更车道、超车、停车前不使用或错误使用转向灯",
+                    "起步、转向、变更车道、超车、停车前,开转向灯少于3秒即转向",
+                    "因操作不当造成发动机熄火一次",
+                  ],
+                },
+                {
+                  title: "上车准备扣分标准",
+                  list: [
+                    "未按逆时针方向绕车一圈检查车辆外观及周围环境,不合格。",
+                  ],
+                },
+                {
+                  title: "起步扣分标准",
+                  list: [
+                    "制动气压不足起步,不合格",
+                    "车门未完全关闭起步,不合格",
+                    "启动发动机时,变速器操纵杆未置于空挡,不合格",
+                    "不松驻车制动器起步,未及时纠正,不合格",
+                    "不松驻车制动器起步,但及时纠正,扣10分",
+                    "发动机启动后,不及时松开启动开关,扣10分",
+                  ],
+                },
+                {
+                  title: "加减档扣分标准",
+                  list: [
+                    "未按指令平稳加、减挡,不合格",
+                    "车辆运行速度与挡位不匹配,扣10分",
+                  ],
+                },
+                {
+                  title: "靠边停车扣分标准",
+                  list: [
+                    "停车后,车身超过道路右侧边缘线或者人行横道线,不合格",
+                    "下车后不关闭车门,不合格",
+                    "停车后,车身距离道路右侧边缘线或者人行道边缘大于30cm,扣10分",
+                    "停车后,未拉紧驻车制动器,扣10分",
+                    "拉紧驻车制动器前放松行车制动踏板,扣10分",
+                    "下车前不将发动机熄火,扣5分",
+                  ],
+                },
+                {
+                  title: "其他扣分标准",
+                  list: [
+                    "直行通过路口、路口左转弯、路口右转弯,不按规定减速或停车瞭望,不合格。",
+                    "通过人行横道、学校区域、公共汽车站,不按规定减速慢行,不合格。",
+                  ],
+                },
+              ],
+            },
+          ],
+        },
+        {
+          title: "科目四",
+          explain:
+            "科目四考试主要考核安全文明驾驶常识,和科目一一样,也是电脑无纸化考试形式,比科目一多了多选择,动画题,案例分析题的题型。科目四考试时长45分钟,每题2分,90-100分为合格。成绩合格的考生,须持本人身份证在考场内出口位置刷身份证,用签名笔签名,并点击确认签名(考生无须取纸质成绩单)",
+        },
+        {
+          title: "领取驾驶证",
+          explain:
+            "当科目四考试合格后,就可以等着车管所制证,当驾校通知驾驶证完成,学员持身份证到驾校报名点领取驾驶证即可。",
+        },
+      ],
+    };
+  },
+  methods: {
+    name() {},
+  },
+  onLoad (query) {
+    //   const name = this.$route.query.name
+    const markdown = query.markdown
+     api.json.markdown(markdown).then(res=>{
+
+     });
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.navbar {
+  background-color: #ffffff;
+  z-index: 10;
+}
+.flex-box {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  font-size: 17px;
+  font-family: PingFang SC;
+  padding: 40px 0 20px;
+  .box-set {
+    width: 336px;
+    border: 1px solid #498ef5;
+    border-radius: 5px;
+    padding: 20px;
+    box-sizing: border-box;
+    background-color: #f6f6f6;
+    color: #5c6066;
+    font-size: 15px;
+    font-weight: 400;
+    line-height: 23px;
+    position: relative;
+    margin-top: 40px;
+  }
+  .icon-right {
+    transform: rotate(180deg);
+  }
+  .two-flex-box {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin-top: 30px;
+  }
+  .one-level-title {
+    font-size: 28px;
+    font-weight: bold;
+    color: #000000;
+    position: relative;
+    &::after {
+      content: "";
+      width: 100%;
+      height: 4px;
+      border-top: 1px dashed #498ef5;
+      border-bottom: 1px solid #498ef5;
+      position: absolute;
+      bottom: 0;
+      left: 0;
+      transform: translateY(100%);
+    }
+  }
+  .one-level-explain {
+  }
+  .three-level-explain {
+    padding-top: 30px;
+  }
+  .two-level-title {
+    font-size: 24px;
+    font-weight: bold;
+    color: #0a1a33;
+  }
+  .three-level-title {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 0 16px;
+    height: 35px;
+    background: #498ef5;
+    border-radius: 18px;
+    font-size: 20px;
+    font-weight: bold;
+    color: #ffffff;
+    line-height: 43px;
+    position: absolute;
+    left: 40px;
+    top: 0;
+    transform: translateY(-50%);
+  }
+  .four-level-title {
+    width: 18px;
+    height: 18px;
+    flex-shrink: 0;
+    margin-top: 3px;
+    margin-right: 5px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    background-color: #498ef5;
+    border-radius: 50%;
+    font-size: 15px;
+    font-weight: 400;
+    color: #fefeff;
+  }
+  .four-level-explain {
+    display: flex;
+    margin-bottom: 5px;
+  }
+}
+</style>

+ 23 - 5
src/pages.json

@@ -7,7 +7,6 @@
     //     "navigationStyle": "custom"
     //   }
     // },
-
     {
       "path": "pages/carVideo/index",
       "style": {
@@ -16,6 +15,14 @@
         "navigationStyle": "custom"
       }
     },
+    {
+      "path": "pages/extraWeb/index",
+      "style": {}
+    },
+    {
+      "path": "pages/marked/index",
+      "style": {}
+    },
     {
       "path": "pages/lightMock/index",
       "style": {
@@ -195,6 +202,18 @@
       }
     }
   ],
+  "subPackages": [
+    {
+      "root":"otherPages",
+      "pages":[{
+        "path":"marked/index",
+        "styles":{
+          
+        }
+      }]
+
+    }
+  ],
   "tabBar": {
     "color": "#7A7E83",
     "selectedColor": "#E31818",
@@ -258,7 +277,7 @@
       "van-dialog": "./wxcomponents/vant/dialog/index",
       "van-tab": "./wxcomponents/vant/tab/index",
       "van-tabs": "./wxcomponents/vant/tabs/index",
-      "van-picker":"./wxcomponents/vant/picker/index",
+      "van-picker": "./wxcomponents/vant/picker/index",
       "van-share-sheet": "./wxcomponents/vant/share-sheet/index",
       "van-index-bar": "./wxcomponents/vant/index-bar/index",
       "van-index-anchor": "./wxcomponents/vant/index-anchor/index",
@@ -282,9 +301,8 @@
         "query": "username=张宇&subject=1&type=liceCar&headimg=https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTL42T648KSueEiaibrIt0jgEmgBUlRvbu1ES3VnKoBicK4GOnuYK8oeSLL0V0gmeGaWwONo78oPpvzUQ/132" //启动参数,在页面的onLoad函数里面得到
       },
       {
-        "name":"灯光模拟",
-        "path":"pages/lightMock/index"
-
+        "name": "灯光模拟",
+        "path": "pages/lightMock/index"
       }
     ]
   }

+ 54 - 0
src/pages/carVideo/components/tabCenter.vue

@@ -0,0 +1,54 @@
+<template>
+  <view class="center">
+    <view class="center-item" v-for="(item, index) in centerList" :key="index">
+      <image class="center-img" :src="item.img"></image>
+      <text class="center-text">{{ item.text }}</text>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  props: {
+    centerList: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.center {
+  display: flex;
+  flex-direction: column;
+  width: 300rpx;
+
+  .center-item {
+    position: relative;
+    margin-bottom: 30rpx;
+    color: #fff;
+    text-align: center;
+  }
+  .center-img {
+    width: 300rpx;
+    height: 300rpx;
+  }
+  .center-text {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    align-content: center;
+    justify-content: center;
+    align-items: center;
+    left: 0;
+    top: 0;
+  }
+}
+</style>

+ 55 - 0
src/pages/carVideo/components/tabLeft.vue

@@ -0,0 +1,55 @@
+<template>
+  <view class="left">
+    <view v-for="(item, index) in leftList" :key="index" class="left-item">
+      <image @click="goPath(item)" :src="item.img"></image>
+      <text>{{ item.text }}</text>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  methods: {
+    goPath(item) {
+      console.log(item);
+      if (item.path) {
+        uni.navigateTo({
+          url: item.path,
+        });
+      }
+    },
+  },
+  props: {
+    leftList: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.left {
+  width: 150rpx;
+  margin-top: 50rpx;
+  font-size: 26rpx;
+  .left-item {
+    width: 150rpx;
+    display: flex;
+    justify-content: center;
+    flex-direction: column;
+    align-content: center;
+    align-items: center;
+    margin-bottom: 36rpx;
+    image {
+      width: 100rpx;
+      height: 100rpx;
+    }
+  }
+}
+</style>

+ 55 - 0
src/pages/carVideo/components/tabRight.vue

@@ -0,0 +1,55 @@
+<template>
+  <view class="right">
+    <view v-for="(item, index) in rightList" :key="index" class="right-item">
+      <image @click="goPath(item)" :src="item.img"></image>
+      <text>{{ item.text }}</text>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  methods: {
+    goPath(item) {
+      console.log(item);
+      if (item.path) {
+        uni.navigateTo({
+          url: item.path,
+        });
+      }
+    },
+  },
+  props: {
+    rightList: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.right {
+  width: 150rpx;
+  margin-top: 50rpx;
+  font-size: 26rpx;
+  .right-item {
+    width: 150rpx;
+    display: flex;
+    justify-content: center;
+    flex-direction: column;
+    align-content: center;
+    align-items: center;
+    margin-bottom: 36rpx;
+    image {
+      width: 100rpx;
+      height: 100rpx;
+    }
+  }
+}
+</style>

+ 5 - 3
src/pages/carVideo/components/videoListBox.vue

@@ -26,11 +26,13 @@
 
 <script>
 	export default {
-		name: "m-video-listBox",
+		name: "video-listBox",
 		props: {
 			carVideoList: {
 				type: Object,
-				default: {}
+				default: ()=>{
+					return {}
+				}
 			},
 		},
 		data() {
@@ -160,4 +162,4 @@
 			}
 		}
 	}
-</style>
+</style>

+ 420 - 57
src/pages/carVideo/index.vue

@@ -1,64 +1,427 @@
 <template>
-	<loading v-if="loading"></loading>
-	<view v-else class="carVideo">
-		<topbar>
-			<van-search shape="round" placeholder="搜索学车视频" @search='search' />
-		</topbar>
-		<van-tabs id='tabs' :active="active" :sticky='true'>
-			<van-tab :title="item.chapterName" v-for="(item,index) in typeList" :key='index' class="vant-tab">
-				<branch-one v-if="index==0" :carVideoList="item.children"></branch-one>
-				<branch-two v-else-if="index==1" :carVideoList="item.children"></branch-two>
-				<branch-two v-else-if="index==2" :carVideoList="item.children"></branch-two>
-				<branch-one v-else-if="index==3" :carVideoList="item.children"></branch-one>
-				<get-cert v-else-if="index==4"></get-cert>
-				<branch-two v-else :carVideoList="item.children"></branch-two>
-			</van-tab>
-		</van-tabs>
-	</view>
+  <loading v-if="loading"></loading>
+
+  <view v-else class="carVideo">
+    <topbar>
+      <van-search shape="round" placeholder="搜索学车视频" @search="search" />
+    </topbar>
+    <view>
+      <swiper :indicator-dots="true" style="height: 200rpx">
+        <swiper-item class="swiperBanner">
+          <image @click="goAprilExam" class="banner" :src="banner1"></image>
+        </swiper-item>
+        <swiper-item class="swiperBanner">
+          <image @click="goAprilExam" class="banner" :src="banner1"></image>
+        </swiper-item>
+        <swiper-item class="swiperBanner">
+          <image @click="goAprilExam" class="banner" :src="banner1"></image>
+        </swiper-item>
+      </swiper>
+    </view>
+    <view class="carType">
+      <view v-for="(item, index) in carType" :key="index">
+        <view
+          @click="
+            () => {
+              carTypeIndex = index;
+            }
+          "
+          class="col"
+          :class="{
+            col_selected: carTypeIndex == index,
+          }"
+        >
+          <image :class="['carType-img' + index]" :src="item.img"></image>
+          <view class="h6"></view>
+          <text class="carType-title">{{ item.title }}</text>
+          <text class="carType-typeName">{{ item.typeName }}</text>
+        </view>
+      </view>
+    </view>
+    <view class="point">
+      <view
+        :style="{
+          left: carTypeIndex * 172 + 'rpx',
+        }"
+        class="point-area"
+      >
+        <image
+          class=""
+          src="https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/triangle1@2x.png"
+        ></image>
+      </view>
+    </view>
+    <view class="tab">
+      <van-tabs class="custom-tabs" :active="active" bind:change="onChange">
+        <van-tab title="科目一">
+          <view class="tab-container">
+            <tab-left :subject="1" :leftList="leftList1"></tab-left>
+            <tab-center :subject="1" :centerList="centerList1"></tab-center>
+            <tab-right :subject="1" :rightList="rightList1"></tab-right>
+          </view>
+        </van-tab>
+        <van-tab title="科目二">
+          <view v-for="(item, index) in typeList[1]" :key="index">
+            <m-video-box
+              :column="[2, 1, 3][index % 3]"
+              :type="[2, 1, 3][index % 3] == 1 ? 'left-right' : 'top-bottom'"
+              :carVideoList="item"
+              v-if="item.children.length == 0"
+            />
+            <VideoListBox :carVideoList="item" v-else />
+          </view>
+          <!-- <view class="tab-container">
+            <tab-left :leftList="leftList"></tab-left>
+            <tab-center :centerList="centerList"></tab-center>
+            <tab-right :rightList="rightList"></tab-right>
+          </view> -->
+        </van-tab>
+        <van-tab title="科目三">
+          <!-- <view class="tab-container">
+            //不重要的 边角料
+            <tab-left :leftList="leftList"></tab-left>
+            <tab-center :centerList="centerList"></tab-center>
+            <tab-right :rightList="rightList"></tab-right>
+          </view> -->
+        </van-tab>
+        <van-tab title="科目四">
+          <view class="tab-container">
+            <tab-left :subject="4" :leftList="leftList4"></tab-left>
+            <tab-center :subject="4" :centerList="centerList4"></tab-center>
+            <tab-right :subject="4" :rightList="rightList4"></tab-right>
+          </view>
+        </van-tab>
+      </van-tabs>
+    </view>
+  </view>
 </template>
 
 <script>
-	import branchOne from './components/branchOne.vue'
-	import branchTwo from './components/branchTwo.vue'
-	export default {
-		components: {
-			branchOne,
-			branchTwo,
-		},
-		data: () => ({
-			active: 1,
-			typeList: [],
-			loading: true
-		}),
-		async mounted() {
-			let {
-				data
-			} = await this.$api.carVideo.getTreeList()
-			this.typeList = data
-			this.loading = false
-			this.$nextTick(() => {
-				this.selectComponent('#tabs').resize();
-			})
-		},
-		methods: {
-			async search(e) {
-				let {
-					data
-				} = await this.$api.carVideo.getSearchList(e.detail)
-				console.log(data)
-				this.$utils.route.goPage('/pages/carVideo/more', null, {
-					carVideoList: data
-				})
-			}
-		}
-	}
+import shortVideo from "./components/shortVideo.vue";
+import branchOne from "./components/branchOne.vue";
+import branchTwo from "./components/branchTwo.vue";
+import banner1 from "@/assets/img/banner1.jpg";
+import Test from "../mockExam/test.vue";
+import tabLeft from "./components/tabLeft.vue";
+import tabRight from "./components/tabRight.vue";
+import TabCenter from "./components/tabCenter.vue";
+export default {
+  components: {
+    shortVideo,
+    branchOne,
+    branchTwo,
+    tabLeft,
+    TabCenter,
+    tabRight,
+  },
+  data: () => ({
+    //科目一
+    rightList1: [
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/LocalTopics@2x.png",
+        text: "地方专题",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/WrongTopicCollection@2x.png",
+        text: "错题·收藏",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/NotesBeforeExamination@2x.png",
+        text: "考前须知",
+        path: "/otherPages/marked/index?markdown=学车必看",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/LearnToSee@2x.png",
+        text: "学车必看",
+        path: "/otherPages/marked/index?markdown=学车必看",
+      },
+    ],
+    centerList1: [
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SelectedTestQuestions@2x.png",
+        text: "精选考题\n500题",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SimulationTestTopics@2x.png",
+        text: "模拟考试\n仿真题目",
+      },
+    ],
+    leftList1: [
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SequentialPractice@2x.png",
+        text: "顺序练习",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/ClassificationExercise@2x.png",
+        text: "分类练习",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/RealExaminationRoomSimulation@2x.png",
+        text: "真实模拟考试",
+        path: "/pages/mockExam/begin?username=张宇&subject=1&type=liceCar&headimg=https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTL42T648KSueEiaibrIt0jgEmgBUlRvbu1ES3VnKoBicK4GOnuYK8oeSLL0V0gmeGaWwONo78oPpvzUQ/132",
+      },
+
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SimulationResults@2x.png",
+        text: "模拟成绩",
+        path: "",
+      },
+    ],
+    //科目四
+    rightList4: [
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/LocalTopics@2x.png",
+        text: "地方专题",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/WrongTopicCollection@2x.png",
+        text: "错题·收藏",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/NotesBeforeExamination@2x.png",
+        text: "考前须知",
+        path: "/otherPages/marked/index?markdown=学车必看",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/LearnToSee@2x.png",
+        text: "学车必看",
+        path: "/otherPages/marked/index?markdown=学车必看",
+      },
+    ],
+    centerList4: [
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SelectedTestQuestions@2x.png",
+        text: "精选考题\n500题",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SimulationTestTopics@2x.png",
+        text: "模拟考试\n仿真题目",
+      },
+    ],
+    leftList4: [
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SequentialPractice@2x.png",
+        text: "顺序练习",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/ClassificationExercise@2x.png",
+        text: "分类练习",
+        path: "",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/RealExaminationRoomSimulation@2x.png",
+        text: "真实模拟考试",
+        path: "/pages/mockExam/begin?username=张宇&subject=1&type=liceCar&headimg=https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTL42T648KSueEiaibrIt0jgEmgBUlRvbu1ES3VnKoBicK4GOnuYK8oeSLL0V0gmeGaWwONo78oPpvzUQ/132",
+      },
+
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/SimulationResults@2x.png",
+        text: "模拟成绩",
+        path: "",
+      },
+    ],
+    active: 0,
+    carTypeIndex: 0,
+    carType: [
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/car@2x.png",
+        typeName: "轿车",
+        title: "C1/C2/C3",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/bus@2x.png",
+        typeName: "客车",
+        title: "A1/A2/B1",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/truck@2x.png",
+        typeName: "货车",
+        title: "A2/B2",
+      },
+      {
+        img: "https://t1-1305573081.file.myqcloud.com/wxapp/static/imgs/home/motorcycle@2x.png",
+        typeName: "摩托车",
+        title: "D/E/F",
+      },
+    ],
+    typeList: [
+      {
+        id: 1,
+        typeName: "科目一",
+        pid: 0,
+        typeDescribe: null,
+        typeIcon: null,
+        typeSort: 0,
+        status: "0",
+        children:[]
+      },
+       {
+        id: 2,
+        typeName: "科目二",
+        pid: 0,
+        typeDescribe: null,
+        typeIcon: null,
+        typeSort: 0,
+        status: "0",
+        children:[]
+      },
+       {
+        id: 3,
+        typeName: "科目三",
+        pid: 0,
+        typeDescribe: null,
+        typeIcon: null,
+        typeSort: 0,
+        status: "0",
+        children:[]
+      },
+       {
+        id: 4,
+        typeName: "科目四",
+        pid: 0,
+        typeDescribe: null,
+        typeIcon: null,
+        typeSort: 0,
+        status: "0",
+        children:[]
+      },
+    ],
+    loading: true,
+    banner1,
+    query: {},
+  }),
+
+  async mounted() {
+    let { data } = await this.$api.carVideo.getTreeList();
+    this.typeList = data;
+    this.loading = false;
+    this.$nextTick(() => {
+      this.selectComponent("#tabs").resize();
+    });
+  },
+  methods: {
+    goAprilExam() {
+      uni.navigateTo({
+        url: "/pages/extraWeb/index?src=https://mn.zzxcx.net/#/aprilExam/test",
+      });
+    },
+    async search(e) {
+      let { data } = await this.$api.carVideo.getSearchList(e.detail);
+      console.log(data);
+      this.$utils.route.goPage("/pages/carVideo/more", null, {
+        carVideoList: data,
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-	.carVideo {
-		position: relative;
-	}
-	 .vant-tab{
-		height: 100px;
-	}
-</style>
+.h6 {
+  height: 6rpx;
+}
+.carVideo {
+  position: relative;
+  background: #fff;
+  min-height: 100vh;
+}
+.swiperBanner {
+  width: 690rpx;
+  height: 200rpx;
+  display: flex;
+  justify-content: center;
+  align-content: center;
+  align-items: center;
+}
+.banner {
+  width: 690rpx;
+  height: 200rpx;
+}
+.carType {
+  width: 690rpx;
+  height: 152rpx;
+  background: #f0f3f7;
+  margin: 0 auto;
+  display: flex;
+  flex-direction: row;
+  margin-top: 32rpx;
+  .col_selected {
+    background: #bfd8ff;
+  }
+  .col {
+    width: 172rpx;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    align-content: center;
+    justify-content: center;
+    .carType-img0 {
+      width: 133rpx;
+      height: 45rpx;
+    }
+    .carType-img1 {
+      width: 108rpx;
+      height: 56rpx;
+    }
+    .carType-img2 {
+      width: 82rpx;
+      height: 60rpx;
+    }
+    .carType-img3 {
+      width: 86rpx;
+      height: 59rpx;
+    }
+    .carType-typeName {
+      color: #333;
+      font-size: 26rpx;
+    }
+    .carType-title {
+      color: #333;
+      font-size: 26rpx;
+    }
+  }
+}
+.point {
+  width: 690rpx;
+  margin: 0 auto;
+  height: 16rpx;
+  display: flex;
+  position: relative;
+  image {
+    width: 30rpx;
+    height: 14rpx;
+  }
+  .point-area {
+    width: 25%;
+    display: flex;
+    justify-content: center;
+    position: absolute;
+  }
+}
+.tab {
+  width: 690rpx;
+  margin: 0 auto;
+  .custom-tabs {
+    /deep/ .van-tabs__line {
+      background: #498ef5;
+    }
+  }
+  .tab-container {
+    width: 690rpx;
+    margin: 0 auto;
+    display: flex;
+    justify-content: space-between;
+  }
+}
+.vant-tab {
+  height: 100px;
+}
+</style>

+ 26 - 0
src/pages/extraWeb/index.vue

@@ -0,0 +1,26 @@
+<template>
+  <div>
+    <web-view :src="src"></web-view>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      query: {},
+      src: "",
+    };
+  },
+  methods: {
+    name() {},
+  },
+  onLoad(query) {
+    this.query = query;
+    this.src = this.query.src;
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 4 - 0
src/pages/mockExam/begin.vue

@@ -84,6 +84,10 @@ export default {
     this.query.headimg = decodeURIComponent(option.headimg);
   },
   methods: {
+    backView(){
+      uni.navigateBack()
+
+    },
     goExam() {
       let page = getCurrentPages()[0];
 

+ 1 - 1
src/pages/mockExam/test.vue

@@ -762,7 +762,7 @@ export default {
     this.subject = this.subjectMap[Number(option.subject)];
     this.carType = this.carTypeMap[option.type];
     api.open
-      .qustionInfoSelectTestQuestionInfo({
+      .questionInfoSelectTestQuestionInfo ({
         subject: Number(option.subject),
         liceBus: option.type == "liceBus" ? "1" : "",
         liceCar: option.type == "liceCar" ? "1" : "",

+ 2 - 1
src/pages/user/index.vue

@@ -81,6 +81,7 @@
 					nickName: userInfo.userInfo.nickName,
 				});
 				if (updateRes.code == 200) {
+					uni.setStorageSync("userInfo",userInfo.userInfo)
 					this.$store.state.user.userInfo.headImage = userInfo.userInfo.avatarUrl;
 					this.$store.state.user.userInfo.nickName = userInfo.userInfo.nickName;
 				}
@@ -174,4 +175,4 @@
 			display: flexbox;
 		}
 	}
-</style>
+</style>