index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. <template>
  2. <loading v-if="loading"></loading>
  3. <view v-else class="carVideo">
  4. <!-- <topbar>
  5. <van-search shape="round" placeholder="搜索学车视频" @search="search" />
  6. </topbar>
  7. <van-tabs id="tabs" :active="active" :sticky="true">
  8. <van-tab
  9. :title="item.chapterName"
  10. v-for="(item, index) in typeList"
  11. :key="index"
  12. class="vant-tab"
  13. >
  14. <branch-one
  15. v-if="index == 0"
  16. :carVideoList="item.children"
  17. ></branch-one>
  18. <branch-two
  19. v-else-if="index == 1"
  20. :carVideoList="item.children"
  21. ></branch-two>
  22. <branch-two
  23. v-else-if="index == 2"
  24. :carVideoList="item.children"
  25. ></branch-two>
  26. <branch-one
  27. v-else-if="index == 3"
  28. :carVideoList="item.children"
  29. ></branch-one>
  30. <get-cert v-else-if="index == 4"></get-cert>
  31. <branch-two v-else :carVideoList="item.children"></branch-two>
  32. </van-tab>
  33. </van-tabs> -->
  34. <!-- #ifdef MP-WEIXIN -->
  35. <topbar>
  36. <userInfoHead :userData="userData"></userInfoHead>
  37. </topbar>
  38. <!-- #endif -->
  39. <view>
  40. <swiper :indicator-dots="false" style="height: 200rpx">
  41. <swiper-item class="swiperBanner">
  42. <image
  43. class="banner"
  44. src="https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/banner.png"
  45. ></image>
  46. </swiper-item>
  47. </swiper>
  48. </view>
  49. <view class="carType">
  50. <view
  51. v-for="(item, index) in carType"
  52. @click="changeVehicle(item)"
  53. :key="index"
  54. >
  55. <view
  56. @click="
  57. () => {
  58. carTypeIndex = index;
  59. }
  60. "
  61. class="col"
  62. :class="{
  63. col_selected: carTypeIndex == index,
  64. }"
  65. >
  66. <image :class="['carType-img' + index]" :src="item.img"></image>
  67. <view class="h6"></view>
  68. <text class="carType-title">{{ item.title }}</text>
  69. <text class="carType-typeName">{{ item.typeName }}</text>
  70. </view>
  71. </view>
  72. </view>
  73. <view class="point">
  74. <view
  75. :style="{
  76. left: carTypeIndex * 172 + 'rpx',
  77. }"
  78. class="point-area"
  79. >
  80. <image
  81. class=""
  82. src="https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/triangle1@2x.png"
  83. ></image>
  84. </view>
  85. </view>
  86. <!-- #ifdef MP-WEIXIN-->
  87. <!-- (废弃) -->
  88. <!-- <view class="tab">
  89. <van-tabs animated class="custom-tabs " :active="active" id="tabs" @change="changeSubject" :sticky="true">
  90. <van-tab class="uni-app-fontsize-paragraph" v-if="xcx_video_open" title="教学视频">
  91. <subjectVideoSelect></subjectVideoSelect>
  92. </van-tab>
  93. <van-tab title-style="font-size:36rpx;" title="科目一">
  94. <view class="tab-container">
  95. <tab-left :subject="1" :query="tabQuery" :leftList="leftList1"></tab-left>
  96. <tab-center :subject="1" :query="tabQuery" :centerList="centerList1"></tab-center>
  97. <tab-right :subject="1" :query="tabQuery" :rightList="rightList1"></tab-right>
  98. </view>
  99. </van-tab>
  100. <van-tab title-style="font-size:36rpx;" title="科目四">
  101. <view class="tab-container">
  102. <tab-left :query="tabQuery" :subject="4" :leftList="leftList4"></tab-left>
  103. <tab-center :query="tabQuery" :subject="4" :centerList="centerList4"></tab-center>
  104. <tab-right :query="tabQuery" :subject="4" :rightList="rightList4"></tab-right>
  105. </view>
  106. </van-tab>
  107. </van-tabs>
  108. </view> -->
  109. <view class="subject">
  110. <view class="subject-tab">
  111. <view
  112. class="subject-slider"
  113. :class="{
  114. left0: active == 0,
  115. right0: active == 1,
  116. }"
  117. ></view>
  118. <view
  119. @click="
  120. () => {
  121. active = 0;
  122. tabQuery.subject = 1;
  123. }
  124. "
  125. class="subject-tabs"
  126. >
  127. <span v-if="active == 0">科目一</span>
  128. <span style="color: #498ef5" v-else>科目一</span>
  129. </view>
  130. <view
  131. @click="
  132. () => {
  133. active = 1;
  134. tabQuery.subject = 4;
  135. }
  136. "
  137. class="subject-tabs"
  138. >
  139. <span v-if="active == 1">科目四</span>
  140. <span style="color: #498ef5" v-else>科目四</span>
  141. </view>
  142. </view>
  143. </view>
  144. <view class="tab">
  145. <scroll-view
  146. @scrolltoupper="
  147. () => {
  148. active = 0;
  149. tabQuery.subject = 1;
  150. }
  151. "
  152. @scrolltolower="
  153. () => {
  154. active = 1;
  155. tabQuery.subject = 4;
  156. }
  157. "
  158. scroll-with-animation
  159. :scroll-into-view="'tab-container' + active"
  160. enhanced
  161. style="width: 100%; white-space: nowrap"
  162. enable-flex
  163. :scroll-x="true"
  164. >
  165. <view
  166. id="tab-container0"
  167. style="display: inline-block; white-space: nowrap"
  168. >
  169. <view class="tab-container">
  170. <tab-left
  171. :subject="1"
  172. :query="tabQuery"
  173. :leftList="leftList1"
  174. ></tab-left>
  175. <tab-center
  176. :subject="1"
  177. :query="tabQuery"
  178. :centerList="centerList1"
  179. ></tab-center>
  180. <tab-right
  181. :subject="1"
  182. :query="tabQuery"
  183. :rightList="rightList1"
  184. ></tab-right>
  185. </view>
  186. </view>
  187. <view
  188. id="tab-container1"
  189. style="display: inline-block; white-space: nowrap"
  190. >
  191. <view class="tab-container">
  192. <tab-left
  193. :query="tabQuery"
  194. :subject="4"
  195. :leftList="leftList4"
  196. ></tab-left>
  197. <tab-center
  198. :query="tabQuery"
  199. :subject="4"
  200. :centerList="centerList4"
  201. ></tab-center>
  202. <tab-right
  203. :query="tabQuery"
  204. :subject="4"
  205. :rightList="rightList4"
  206. ></tab-right>
  207. </view>
  208. </view>
  209. </scroll-view>
  210. </view>
  211. <!-- #endif -->
  212. <!-- <view class="splitLine"> </view>
  213. <view v-if="tabQuery.name !== '教学视频'" class="two">
  214. <view
  215. @click="
  216. goPath(
  217. '/otherPages/selectRulePaper/index',
  218. {
  219. title: '新规秘卷',
  220. },
  221. true
  222. )
  223. "
  224. class="two-item"
  225. >
  226. <image
  227. class=""
  228. src="https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/xingui.png"
  229. ></image>
  230. <text style="color: #fff; font-size: 46rpx; top: 34rpx" class="twp-text"
  231. >新规秘卷</text
  232. >
  233. <text
  234. style="color: #fff; font-size: 30rpx; top: 104rpx"
  235. class="twp-text"
  236. >考前秘籍 直击考点</text
  237. >
  238. </view>
  239. </view> -->
  240. <!-- <view v-if="active == 0 || active == 3">
  241. <van-cell
  242. v-if="active == 0"
  243. @click="clickCell(recomVideos0)"
  244. :title="'科目一教学视频'"
  245. is-link
  246. value="更多"
  247. />
  248. <van-cell
  249. v-if="active == 3"
  250. @click="clickCell(recomVideos3)"
  251. :title="'科目四教学视频'"
  252. is-link
  253. value="更多"
  254. />
  255. <view v-if="active == 0" class="video-box">
  256. <m-video-topbottom
  257. @click="returnData(item)"
  258. :carVideoItem="item"
  259. v-for="(item, index) in recomVideos0.list"
  260. :key="index"
  261. />
  262. </view>
  263. <view v-if="active == 3" class="video-box">
  264. <m-video-topbottom
  265. @click="returnData(item)"
  266. :carVideoItem="item"
  267. v-for="(item, index) in recomVideos3.list"
  268. :key="index"
  269. />
  270. </view>
  271. </view> -->
  272. </view>
  273. </template>
  274. <script>
  275. import shortVideo from "./components/shortVideo.vue";
  276. import branchOne from "./components/branchOne.vue";
  277. import branchTwo from "./components/branchTwo.vue";
  278. import tabLeft from "./components/tabLeft.vue";
  279. import tabRight from "./components/tabRight.vue";
  280. import TabCenter from "./components/tabCenter.vue";
  281. import VideoListBox from "./components/videoListBox.vue";
  282. import userInfoHead from "./components/userInfoHead.vue";
  283. import utils from "@/utils/index";
  284. import api from "@/api";
  285. import subjectVideoSelect from "./components/subjectVideoSelect.vue";
  286. import userInfoAuth from "./components/userInfoAuth.vue";
  287. export default {
  288. components: {
  289. userInfoAuth,
  290. shortVideo,
  291. branchOne,
  292. branchTwo,
  293. tabLeft,
  294. TabCenter,
  295. tabRight,
  296. VideoListBox,
  297. userInfoHead,
  298. subjectVideoSelect,
  299. },
  300. data: () => ({
  301. userInfoAuthVisible: false,
  302. xcx_video_open: 0,
  303. subjectMap: ["科目一", "科目二", "科目三", "科目四"],
  304. recomVideos0: [],
  305. recomVideos3: [],
  306. tabQuery: {
  307. liceCar: 1,
  308. liceTruck: "",
  309. liceBus: "",
  310. liceMoto: "",
  311. name: "科目一",
  312. gs: "xc",
  313. cert: "C1/C2/C3",
  314. vehicle: "小车",
  315. subject: 1,
  316. title: "顺序练习",
  317. sort: 3,
  318. },
  319. //科目一
  320. rightList1: [
  321. {
  322. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/LocalTopics@2x.png",
  323. text: "地方专题",
  324. path: "/otherPages/classifyArea/index",
  325. },
  326. {
  327. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/WrongTopicCollection@2x.png",
  328. text: "错题·收藏",
  329. path: "/otherPages/collection/index",
  330. },
  331. {
  332. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/NotesBeforeExamination@2x.png",
  333. text: "考前须知",
  334. path: "/otherPages/marked/index?markdown=考前须知",
  335. },
  336. {
  337. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/learnToSee@2x.png",
  338. text: "学车必看",
  339. path: "/otherPages/marked/index?markdown=学车必看",
  340. },
  341. ],
  342. centerList1: [
  343. {
  344. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/selectedTestQuestions@2x.png",
  345. text: "精选考题",
  346. path: "/otherPages/classifyChoose/index",
  347. },
  348. {
  349. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/simulationTestTopics@2x.png",
  350. text: "模拟考试",
  351. path: "/otherPages/beforeMockExam/index",
  352. },
  353. ],
  354. leftList1: [
  355. {
  356. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/sequentialPractice@2x.png",
  357. text: "顺序练习",
  358. path: "/otherPages/classifyOrder/index",
  359. },
  360. {
  361. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/classificationExercise@2x.png",
  362. text: "分类练习",
  363. path: "/otherPages/classifyKind/index",
  364. },
  365. {
  366. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/newRulesPaper@2x.png",
  367. text: "新规秘卷",
  368. path: "/otherPages/selectRulePaper/index",
  369. },
  370. {
  371. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/simulationResults@2x.png",
  372. text: "模拟成绩",
  373. path: "/otherPages/testScores/index",
  374. },
  375. ],
  376. //科目四
  377. rightList4: [
  378. {
  379. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/localTopics%402x.png",
  380. text: "地方专题",
  381. path: "/otherPages/classifyArea/index",
  382. },
  383. {
  384. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/wrongTopicCollection%402x.png",
  385. text: "错题·收藏",
  386. path: "/otherPages/collection/index",
  387. },
  388. {
  389. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/notesBeforeExamination%402x.png",
  390. text: "考前须知",
  391. path: "/otherPages/marked/index?markdown=学车必看",
  392. },
  393. {
  394. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/learnToSee@2x.png",
  395. text: "学车必看",
  396. path: "/otherPages/marked/index?markdown=学车必看",
  397. },
  398. ],
  399. centerList4: [
  400. {
  401. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/selectedTestQuestions@2x.png",
  402. text: "精选考题",
  403. path: "/otherPages/classifyChoose/index",
  404. },
  405. {
  406. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/simulationTestTopics@2x.png",
  407. text: "模拟考试",
  408. path: "/otherPages/beforeMockExam/index",
  409. },
  410. ],
  411. leftList4: [
  412. {
  413. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/sequentialPractice@2x.png",
  414. text: "顺序练习",
  415. path: "/otherPages/classifyOrder/index",
  416. },
  417. {
  418. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/classificationExercise@2x.png",
  419. text: "分类练习",
  420. path: "/otherPages/classifyKind/index",
  421. },
  422. {
  423. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/newRulesPaper@2x.png",
  424. text: "新规秘卷",
  425. path: "/otherPages/selectRulePaper/index",
  426. },
  427. {
  428. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/simulationResults@2x.png",
  429. text: "模拟成绩",
  430. path: "/otherPages/testScores/index",
  431. },
  432. ],
  433. active: 0,
  434. carTypeIndex: 0,
  435. carType: [
  436. {
  437. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/xc.png",
  438. typeName: "小车",
  439. title: "C1/C2/C3",
  440. },
  441. {
  442. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/kc.png",
  443. typeName: "客车",
  444. title: "A1/A3/B1",
  445. },
  446. {
  447. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/hc.png",
  448. typeName: "货车",
  449. title: "A2/B2",
  450. },
  451. {
  452. img: "https://ndata.zzxcx.net/ctjk/mp-wx/carVideo/mtc.png",
  453. typeName: "摩托车",
  454. title: "D/E/F",
  455. },
  456. ],
  457. typeList: [
  458. {
  459. id: 1,
  460. typeName: "科目一",
  461. pid: 0,
  462. typeDescribe: null,
  463. typeIcon: null,
  464. typeSort: 0,
  465. status: "0",
  466. children: [],
  467. },
  468. {
  469. id: 2,
  470. typeName: "科目二",
  471. pid: 0,
  472. typeDescribe: null,
  473. typeIcon: null,
  474. typeSort: 0,
  475. status: "0",
  476. children: [],
  477. },
  478. {
  479. id: 3,
  480. typeName: "科目三",
  481. pid: 0,
  482. typeDescribe: null,
  483. typeIcon: null,
  484. typeSort: 0,
  485. status: "0",
  486. children: [],
  487. },
  488. {
  489. id: 4,
  490. typeName: "科目四",
  491. pid: 0,
  492. typeDescribe: null,
  493. typeIcon: null,
  494. typeSort: 0,
  495. status: "0",
  496. children: [],
  497. },
  498. ],
  499. loading: true,
  500. query: {},
  501. }),
  502. computed: {
  503. userData() {
  504. console.log(this.$store.state);
  505. return this.$store.state.user.userInfo || {};
  506. },
  507. },
  508. onReady() {
  509. // const query = tt.createSelectorQuery();
  510. // // 选择 ttml 中的示例按钮,并添加一个对它布局信息的查询
  511. // query.select("#btn").boundingClientRect();
  512. // // 选择显示区域,并查询它的滚动位置信息
  513. // query.selectViewport().scrollOffset();
  514. },
  515. async mounted() {
  516. this.loading = false;
  517. api.system.systemConfigConfigKey("xcx_video_open").then((res) => {
  518. this.xcx_video_open = Number(res.data);
  519. this.$nextTick(() => {
  520. // 需要延迟
  521. api.user.getInfo().then((res) => {
  522. uni.setStorageSync("userInfo", res.data);
  523. this.$store.commit("SET_USERINFO", res.data);
  524. // if (!res.data.nickName) {
  525. // uni.showModal({
  526. // title: "新用户更新信息",
  527. // confirmText: "去更新",
  528. // success: function (res) {
  529. // if (res.confirm) {
  530. // uni.navigateTo({
  531. // url:"/otherPages/userInfoAuth/index"
  532. // })
  533. // } else if (res.cancel) {
  534. // }
  535. // }
  536. // })
  537. });
  538. });
  539. this.$store.dispatch("GetRoadExamVip");
  540. });
  541. // api.user.getInfo().then(res => {
  542. // uni.setStorageSync("userInfo", res.data);
  543. // this.$store.commit('SET_USERINFO', res.data)
  544. // // if (!res.data.nickName) {
  545. // // uni.showModal({
  546. // // title: "新用户更新信息",
  547. // // confirmText: "去更新",
  548. // // success: function (res) {
  549. // // if (res.confirm) {
  550. // // uni.navigateTo({
  551. // // url:"/otherPages/userInfoAuth/index"
  552. // // })
  553. // // } else if (res.cancel) {
  554. // // }
  555. // // }
  556. // // })
  557. // // }
  558. // })
  559. // this.$nextTick(() => {
  560. // this.selectComponent("#tabs").resize();
  561. // });
  562. },
  563. methods: {
  564. clickCell(carVideoList) {
  565. this.$utils.route.goPage(
  566. `/pages/carVideo/moreVideo?active=${this.active}`,
  567. null,
  568. {
  569. carVideoList: carVideoList,
  570. active: this.active,
  571. }
  572. );
  573. },
  574. goPath(url, extraQuery = {}, needVip = false) {
  575. uni.navigateTo({
  576. url:
  577. url + "?" + utils.mapToUrlQuery({ ...this.tabQuery, ...extraQuery }),
  578. });
  579. },
  580. scrollTabs(e) {
  581. console.log(e);
  582. },
  583. changeVehicle(item) {
  584. this.tabQuery.vehicle = item.typeName;
  585. this.tabQuery.cert = item.title;
  586. switch (item.typeName) {
  587. case "小车":
  588. this.tabQuery.liceCar = 1;
  589. this.tabQuery.liceTruck = "";
  590. this.tabQuery.liceBus = "";
  591. this.tabQuery.liceMoto = "";
  592. this.tabQuery.gs = "xc";
  593. break;
  594. case "货车":
  595. this.tabQuery.liceCar = "";
  596. this.tabQuery.liceTruck = 1;
  597. this.tabQuery.liceBus = "";
  598. this.tabQuery.liceMoto = "";
  599. this.tabQuery.gs = "hc";
  600. break;
  601. case "客车":
  602. this.tabQuery.liceCar = "";
  603. this.tabQuery.liceTruck = "";
  604. this.tabQuery.liceBus = 1;
  605. this.tabQuery.liceMoto = "";
  606. this.tabQuery.gs = "kc";
  607. break;
  608. case "摩托车":
  609. this.tabQuery.liceCar = "";
  610. this.tabQuery.liceTruck = "";
  611. this.tabQuery.liceBus = "";
  612. this.tabQuery.liceMoto = 1;
  613. this.tabQuery.gs = "mtc";
  614. break;
  615. default:
  616. break;
  617. }
  618. },
  619. changeSubject(e) {
  620. this.tabQuery.subject = e.detail.title == "科目一" ? 1 : 4;
  621. this.tabQuery.name = e.detail.title;
  622. },
  623. goLightMock(e) {
  624. uni.navigateTo({
  625. url: "/pages/lightMock/index",
  626. });
  627. },
  628. goAprilExam() {
  629. uni.navigateTo({
  630. url: "/pages/extraWeb/index?src=https://mn.zzxcx.net/#/aprilExam/test",
  631. });
  632. },
  633. async search(e) {
  634. let { data } = await this.$api.carVideo.getSearchList(e.detail);
  635. console.log(data);
  636. this.$utils.route.goPage("/pages/carVideo/more", null, {
  637. carVideoList: data,
  638. });
  639. },
  640. },
  641. };
  642. </script>
  643. <style lang="scss" scoped>
  644. .splitLine {
  645. width: 750rpx;
  646. height: 20rpx;
  647. background: #f2f3f5;
  648. }
  649. .subject {
  650. width: 100%;
  651. display: flex;
  652. justify-content: center;
  653. margin-top: 40rpx;
  654. .subject-tab {
  655. width: 546rpx;
  656. height: 80rpx;
  657. background: #e3edfc;
  658. border-radius: 46rpx;
  659. position: relative;
  660. display: flex;
  661. .subject-tabs {
  662. width: 50%;
  663. height: 100%;
  664. line-height: 80rpx;
  665. color: #fff;
  666. text-align: center;
  667. font-size: 40rpx;
  668. z-index: 11;
  669. }
  670. .subject-slider {
  671. border-radius: 46rpx;
  672. background: -webkit-linear-gradient(left, #26a1ee, #498ef5);
  673. width: 300rpx;
  674. height: 100%;
  675. position: absolute;
  676. z-index: 10;
  677. }
  678. }
  679. }
  680. .two {
  681. width: 100%;
  682. padding: 40rpx 30rpx;
  683. display: flex;
  684. justify-content: space-between;
  685. flex-wrap: wrap;
  686. background: #fff;
  687. .two-item {
  688. position: relative;
  689. .twp-text {
  690. position: absolute;
  691. top: 32rpx;
  692. left: 30rpx;
  693. font-size: 32rpx;
  694. }
  695. image {
  696. width: 690rpx;
  697. height: 192rpx;
  698. }
  699. }
  700. }
  701. .tabTitle {
  702. width: 690rpx;
  703. margin: 0 auto;
  704. font-size: 28rpx;
  705. display: flex;
  706. justify-content: space-between;
  707. text-align: center;
  708. line-height: 66rpx;
  709. height: 66rpx;
  710. position: relative;
  711. box-sizing: border-box;
  712. .tabTitle-row {
  713. width: 172rpx;
  714. }
  715. .rect {
  716. width: 25%;
  717. text-align: center;
  718. position: absolute;
  719. bottom: 0;
  720. left: 0;
  721. height: 4rpx;
  722. .rect-color {
  723. width: 60%;
  724. height: 4rpx;
  725. margin: 0 auto;
  726. background: red;
  727. }
  728. }
  729. }
  730. swiper-item {
  731. overflow-y: scroll;
  732. }
  733. .h6 {
  734. height: 6rpx;
  735. }
  736. .carVideo {
  737. position: relative;
  738. background: #fff;
  739. min-height: 100vh;
  740. width: 100%;
  741. }
  742. .swiperBanner {
  743. width: 690rpx;
  744. height: 200rpx;
  745. display: flex;
  746. justify-content: center;
  747. align-content: center;
  748. align-items: center;
  749. }
  750. .banner {
  751. width: 690rpx;
  752. height: 200rpx;
  753. }
  754. .carType {
  755. width: 690rpx;
  756. height: 152rpx;
  757. background: #f0f3f7;
  758. margin: 0 auto;
  759. display: flex;
  760. flex-direction: row;
  761. margin-top: 32rpx;
  762. .col_selected {
  763. background: #bfd8ff;
  764. }
  765. .col {
  766. width: 172rpx;
  767. height: 100%;
  768. display: flex;
  769. flex-direction: column;
  770. align-items: center;
  771. align-content: center;
  772. justify-content: center;
  773. .carType-img0 {
  774. width: 133rpx;
  775. height: 45rpx;
  776. }
  777. .carType-img1 {
  778. width: 108rpx;
  779. height: 56rpx;
  780. }
  781. .carType-img2 {
  782. width: 82rpx;
  783. height: 60rpx;
  784. }
  785. .carType-img3 {
  786. width: 86rpx;
  787. height: 59rpx;
  788. }
  789. .carType-typeName {
  790. color: #333;
  791. font-size: $uni-app-fontsize-paragraph;
  792. }
  793. .carType-title {
  794. color: #333;
  795. font-size: $uni-app-fontsize-paragraph;
  796. }
  797. }
  798. }
  799. .point {
  800. width: 690rpx;
  801. margin: 0 auto;
  802. height: 16rpx;
  803. display: flex;
  804. position: relative;
  805. image {
  806. width: 30rpx;
  807. height: 14rpx;
  808. }
  809. .point-area {
  810. width: 25%;
  811. display: flex;
  812. justify-content: center;
  813. position: absolute;
  814. }
  815. }
  816. .tab {
  817. width: 100%;
  818. margin: 0 auto;
  819. display: inline-block;
  820. font-size: $uni-app-fontsize-paragraph;
  821. white-space: nowrap;
  822. #tabs {
  823. height: 800rpx;
  824. }
  825. .custom-tabs {
  826. /deep/ .van-tabs__line {
  827. background: #498ef5;
  828. }
  829. }
  830. .tab-container {
  831. width: 750rpx;
  832. display: flex;
  833. justify-content: space-between;
  834. align-content: flex-start;
  835. align-items: flex-start;
  836. padding: 0 30rpx;
  837. }
  838. }
  839. .vant-tab {
  840. height: 100px;
  841. }
  842. .video-box {
  843. background-color: #ffffff;
  844. display: flex;
  845. flex-wrap: wrap;
  846. width: 690rpx;
  847. margin-left: auto;
  848. margin-right: auto;
  849. margin-bottom: 30rpx;
  850. z-index: 0;
  851. justify-content: space-between;
  852. .custom-video-topbottom ::v-deep .video-item {
  853. margin-right: 0;
  854. margin-bottom: 0;
  855. }
  856. }
  857. .left0 {
  858. left: 0;
  859. }
  860. .right0 {
  861. right: 0;
  862. }
  863. </style>