index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893
  1. <template>
  2. <view>
  3. <u-navbar
  4. :is-back="false"
  5. title="选课中心"
  6. :border-bottom="false"
  7. title-color="#333333"
  8. back-icon-color="#ffffff"
  9. >
  10. <view class="slot-wrap">
  11. <image
  12. :src="logo"
  13. style="width: 178rpx; height: 31rpx; margin-left: 30rpx"
  14. ></image>
  15. </view>
  16. </u-navbar>
  17. <view v-show="!show">
  18. <view style="position: fixed; width: 100%; z-index: 999">
  19. <view class="bg_color"></view>
  20. <view class="check_ck">
  21. <view class="checked">
  22. <!-- {{selObj.pName}}-{{selObj.bName}} -->
  23. <view class="check_title"
  24. >{{ selObj.eName }}:{{ selObj.aliasName }}</view
  25. >
  26. <view class="again_ck" @click="openLeft()">
  27. <view style="color: #007aff; font-size: 32rpx">重新选择</view>
  28. <u-icon name="list" color="#007AFF" size="40"></u-icon>
  29. </view>
  30. </view>
  31. <view style="display: flex; align-items: center">
  32. <view style="margin: 0 auto">
  33. <u-tabs
  34. :list="courseLists"
  35. height="97"
  36. :current="current"
  37. @change="change"
  38. :scrollable="false"
  39. ></u-tabs>
  40. </view>
  41. </view>
  42. </view>
  43. <!-- <u-line color="#D6D6DB" /> -->
  44. <view class="menuSel" v-show="current == 0">
  45. <scroll-view class="r_sliper" scroll-x="true">
  46. <view
  47. v-for="(item, index) in sList"
  48. :key="index"
  49. style="margin-right: 20rpx; display: inline-block"
  50. >
  51. <view
  52. :class="paramList[0].subjectId == item.id ? 'r_t1' : 'r_t2'"
  53. @click="cMenu(item.id)"
  54. >
  55. {{ item.subjectName }}
  56. </view>
  57. </view>
  58. </scroll-view>
  59. </view>
  60. <view class="menuSel" v-show="current == 1">
  61. <scroll-view class="r_sliper" scroll-x="true">
  62. <view
  63. v-for="(item, index) in sList"
  64. :key="index"
  65. style="margin-right: 20rpx; display: inline-block"
  66. >
  67. <view
  68. :class="paramList[1].subjectId == item.id ? 'r_t1' : 'r_t2'"
  69. @click="cMenu1(item.id)"
  70. >
  71. {{ item.subjectName }}
  72. </view>
  73. </view>
  74. </scroll-view>
  75. </view>
  76. <view class="menuSel" v-show="current == 2">
  77. <scroll-view class="r_sliper" scroll-x="true">
  78. <view
  79. v-for="(item, index) in sList"
  80. :key="index"
  81. style="margin-right: 20rpx; display: inline-block"
  82. >
  83. <view
  84. :class="paramList[2].subjectId == item.id ? 'r_t1' : 'r_t2'"
  85. @click="cMenu2(item.id)"
  86. >
  87. {{ item.subjectName }}
  88. </view>
  89. </view>
  90. </scroll-view>
  91. </view>
  92. </view>
  93. <view v-show="current == 0" class="contents">
  94. <view class="listBox">
  95. <navigator
  96. hover-class="none"
  97. :url="
  98. '/pages3/course/detail?id=' +
  99. item.goodsId +
  100. '&goodsType=' +
  101. item.goodsType
  102. "
  103. v-for="(item, index) in list1"
  104. :key="index"
  105. >
  106. <view class="itemBox">
  107. <image
  108. :src="$method.splitImgHost(item.coverUrl)"
  109. style="height: 367rpx; width: 100%; border-radius: 24rpx"
  110. ></image>
  111. <view
  112. style="display: flex; margin-top: 13rpx; align-items: center"
  113. >
  114. <view class="yearTag" v-if="item.year">{{ item.year }}</view>
  115. <view class="titleTag">{{ item.goodsName }}</view>
  116. </view>
  117. <view
  118. style="
  119. display: flex;
  120. justify-content: space-between;
  121. margin-top: 15rpx;
  122. "
  123. >
  124. <view class="noteTag"
  125. ><image
  126. src="/static/icon/wk_icon1.png"
  127. class="wk_icon"
  128. ></image>
  129. 共 <text class="blackFont">{{ item.courseNum }}</text>
  130. <text class="margin30">课程</text>
  131. <text class="blackFont">{{ item.classHours || "-" }}</text>
  132. 学时</view
  133. >
  134. <view>
  135. <view
  136. class="priceTag"
  137. v-if="
  138. !item.specTemplateId || (!item.maxPrice && !item.minPrice)
  139. "
  140. >
  141. {{
  142. item.standPrice === 0 ? "免费" : `¥${item.standPrice}`
  143. }}
  144. </view>
  145. <!-- 范围价格 -->
  146. <view v-else class="priceTag">
  147. <view>{{ item.minPrice }}</view>
  148. <template v-if="item.minPrice != item.maxPrice">
  149. <text>-</text>
  150. <view>{{ item.maxPrice }}</view>
  151. </template>
  152. </view>
  153. <text v-if="item.linePrice" class="sale">¥ </text>
  154. <text v-if="item.linePrice" class="price_line">
  155. {{ item.linePrice }}</text
  156. >
  157. </view>
  158. </view>
  159. </view>
  160. </navigator>
  161. <view class="emptyTip" v-if="list1.length == 0"
  162. >暂未上架相关网课~</view
  163. >
  164. </view>
  165. </view>
  166. <view v-show="current == 1" class="contents">
  167. <view class="listBox">
  168. <navigator
  169. hover-class="none"
  170. :url="'/pages2/bank/detail?id=' + item.goodsId"
  171. v-for="(item, index) in list2"
  172. :key="index"
  173. >
  174. <view class="itemBox">
  175. <image
  176. :src="$method.splitImgHost(item.coverUrl)"
  177. style="height: 367rpx; width: 100%; border-radius: 24rpx"
  178. ></image>
  179. <view
  180. style="display: flex; margin-top: 13rpx; align-items: center"
  181. >
  182. <view class="yearTag" v-if="item.year">{{ item.year }}</view>
  183. <view
  184. class="titleTag"
  185. style="display: flex; justify-content: space-between; flex: 1"
  186. >
  187. <view style="flex: 1">{{ item.goodsName }}</view>
  188. <view>
  189. <view
  190. class="priceTag"
  191. v-if="
  192. !item.specTemplateId ||
  193. (!item.maxPrice && !item.minPrice)
  194. "
  195. >
  196. {{
  197. item.standPrice === 0 ? "免费" : `¥${item.standPrice}`
  198. }}
  199. </view>
  200. <!-- 范围价格 -->
  201. <view v-else class="priceTag">
  202. <view>{{ item.minPrice }}</view>
  203. <template v-if="item.minPrice != item.maxPrice">
  204. <text>-</text>
  205. <view>{{ item.maxPrice }}</view>
  206. </template>
  207. </view>
  208. <text v-if="item.linePrice" class="sale">¥ </text>
  209. <text v-if="item.linePrice" class="price_line">
  210. {{ item.linePrice }}</text
  211. >
  212. </view>
  213. </view>
  214. </view>
  215. <view
  216. style="
  217. display: flex;
  218. justify-content: space-between;
  219. margin-top: 15rpx;
  220. "
  221. v-if="false"
  222. >
  223. <view class="noteTag"
  224. ><image
  225. src="/static/icon/wk_icon1.png"
  226. class="wk_icon"
  227. ></image>
  228. 共 <text class="blackFont">6</text>
  229. <view class="margin30">张卷</view>
  230. <text class="blackFont">120</text>道题
  231. </view>
  232. <view>
  233. <view
  234. class="priceTag"
  235. v-if="
  236. !item.specTemplateId || (!item.maxPrice && !item.minPrice)
  237. "
  238. >
  239. {{
  240. item.standPrice === 0 ? "免费" : `¥${item.standPrice}`
  241. }}
  242. </view>
  243. <!-- 范围价格 -->
  244. <view v-else class="priceTag">
  245. <view>{{ item.minPrice }}</view>
  246. <template v-if="item.minPrice != item.maxPrice">
  247. <text>-</text>
  248. <view>{{ item.maxPrice }}</view>
  249. </template>
  250. </view>
  251. <text v-if="item.linePrice" class="sale">¥ </text>
  252. <text v-if="item.linePrice" class="price_line">
  253. {{ item.linePrice }}</text
  254. >
  255. </view>
  256. </view>
  257. </view>
  258. </navigator>
  259. <view class="emptyTip" v-if="list2.length == 0"
  260. >暂未上架相关题库~</view
  261. >
  262. </view>
  263. </view>
  264. <view v-show="current == 2" class="contents">
  265. <view class="listBox">
  266. <!-- /pages5/liveDetail/index -->
  267. <navigator
  268. hover-class="none"
  269. :url="
  270. '/pages3/course/detail?id=' +
  271. item.goodsId +
  272. '&goodsType=' +
  273. item.goodsType
  274. "
  275. v-for="(item, index) in list3"
  276. :key="index"
  277. >
  278. <view class="itemBox">
  279. <image
  280. :src="$method.splitImgHost(item.coverUrl)"
  281. style="height: 367rpx; width: 100%; border-radius: 24rpx"
  282. ></image>
  283. <view
  284. style="display: flex; margin-top: 13rpx; align-items: center"
  285. >
  286. <view class="yearTag" v-if="item.year">{{ item.year }}</view>
  287. <view
  288. class="titleTag"
  289. style="display: flex; justify-content: space-between; flex: 1"
  290. >
  291. <view style="flex: 1">{{ item.goodsName }}</view>
  292. <view>
  293. <view
  294. class="priceTag"
  295. v-if="
  296. !item.specTemplateId ||
  297. (!item.maxPrice && !item.minPrice)
  298. "
  299. >
  300. {{
  301. item.standPrice === 0 ? "免费" : `¥${item.standPrice}`
  302. }}
  303. </view>
  304. <!-- 范围价格 -->
  305. <view v-else class="priceTag">
  306. <view>{{ item.minPrice }}</view>
  307. <template v-if="item.minPrice != item.maxPrice">
  308. <text>-</text>
  309. <view>{{ item.maxPrice }}</view>
  310. </template>
  311. </view>
  312. <text v-if="item.linePrice" class="sale">¥ </text>
  313. <text v-if="item.linePrice" class="price_line">
  314. {{ item.linePrice }}</text
  315. >
  316. </view>
  317. </view>
  318. </view>
  319. <!-- <view style="display: flex;justify-content: space-between;margin-top: 15rpx;" v-if="false">
  320. <view class="noteTag">
  321. <image src="/static/icon/wk_icon1.png" class="wk_icon"></image>
  322. <view>
  323. <text v-if="item.standPrice" class="priceTag">¥ {{item.standPrice.toFixed(2)}}</text>
  324. <text v-else class="priceTag free">免费</text>
  325. <view class="priceTag">¥ {{item.standPrice.toFixed(2)}}</view>
  326. <text class="sale"> ¥ </text>
  327. <text class="price_line"> {{ item.linePrice }}</text>
  328. </view>
  329. </view>
  330. </view> -->
  331. </view>
  332. </navigator>
  333. <view class="emptyTip" v-if="list3.length == 0"
  334. >暂未上架相关直播~</view
  335. >
  336. </view>
  337. </view>
  338. </view>
  339. <view v-show="show" class="popuBox">
  340. <view class="flex-d">
  341. <view class="contentZ">
  342. <view class="lzs">
  343. <view
  344. class="tylsz"
  345. v-for="(item, index) in eList"
  346. :key="index"
  347. @click="active1(item)"
  348. :class="item.id === selObj.eId ? 'activeStys' : ''"
  349. >{{ item.educationName }}</view
  350. >
  351. </view>
  352. <view class="rzs">
  353. <!-- {{ item.projectName }}-{{ item.businessName }} -->
  354. <view
  355. class="tylszB"
  356. v-for="(item, index) in bList"
  357. :key="index"
  358. @click="active2(item)"
  359. :class="item.id === selObj.bId ? 'activeStys2' : ''"
  360. >{{ item.aliasName }}</view
  361. >
  362. </view>
  363. </view>
  364. </view>
  365. </view>
  366. </view>
  367. </template>
  368. <script>
  369. import { mapGetters } from "vuex";
  370. import config from '@/common/config'
  371. export default {
  372. components: {},
  373. data() {
  374. return {
  375. logo: config.TOP_LOGO,
  376. show: false,
  377. courseLists: [
  378. {
  379. name: "网课",
  380. },
  381. {
  382. name: "题库通",
  383. },
  384. {
  385. name: "直播课",
  386. },
  387. ],
  388. // array:['全部','建设工程施工管理','机电全科','机电工程管理与实','机电全科','全科'],
  389. current: 0,
  390. menuIndex: 0,
  391. menuIndex1: 0,
  392. paramList: [
  393. {
  394. pageNum: 1,
  395. pageSize: 10,
  396. total: 0,
  397. showStatus: 1,
  398. goodsType: 1,
  399. subjectId: 0,
  400. sortType: 1,
  401. },
  402. {
  403. pageNum: 1,
  404. pageSize: 10,
  405. total: 0,
  406. showStatus: 1,
  407. goodsType: 2,
  408. subjectId: 0,
  409. sortType: 1,
  410. },
  411. {
  412. pageNum: 1,
  413. pageSize: 10,
  414. total: 0,
  415. showStatus: 1,
  416. goodsType: 6,
  417. subjectId: 0,
  418. sortType: 1,
  419. },
  420. ],
  421. list1: [],
  422. list2: [],
  423. list3: [],
  424. eList: [],
  425. bList: [],
  426. sList: [],
  427. selObj: {
  428. eName: "",
  429. pName: "",
  430. bName: "",
  431. eId: 0,
  432. bId: 0,
  433. pId: 0,
  434. },
  435. };
  436. },
  437. onPullDownRefresh() {
  438. this.initList();
  439. setTimeout(function () {
  440. uni.stopPullDownRefresh();
  441. }, 500);
  442. },
  443. onLoad(option) {
  444. console.log("item", this.current);
  445. let eduStr = uni.getStorageSync("eduObj");
  446. if (eduStr) {
  447. this.selObj = JSON.parse(eduStr);
  448. this.subjectList({
  449. businessId: this.selObj.bId,
  450. projectId: this.selObj.pId,
  451. educationId: this.selObj.eId,
  452. });
  453. this.mergeBusiness();
  454. } else {
  455. this.show = true;
  456. }
  457. this.initList();
  458. },
  459. methods: {
  460. mergeBusiness() {
  461. this.paramList[0].educationTypeId = this.selObj.eId;
  462. this.paramList[0].businessId = this.selObj.bId;
  463. this.paramList[0].subjectId = 0;
  464. this.paramList[1].educationTypeId = this.selObj.eId;
  465. this.paramList[1].businessId = this.selObj.bId;
  466. this.paramList[1].subjectId = 0;
  467. this.paramList[2].educationTypeId = this.selObj.eId;
  468. this.paramList[2].businessId = this.selObj.bId;
  469. this.paramList[2].subjectId = 0;
  470. },
  471. subjectList(data) {
  472. var self = this;
  473. // /app/common/course/subject/list
  474. this.$api.subjectList(data).then((res) => {
  475. if (res.data.code == 200) {
  476. self.sList = res.data.rows;
  477. let allItem = { id: 0, subjectName: "全部" };
  478. self.sList.unshift(allItem);
  479. }
  480. });
  481. },
  482. active2(item) {
  483. // console.log('item', item)
  484. if (item.topicId) {
  485. uni.navigateTo({
  486. url: "/pages4/courseTopic/goodsTopic?topicId=" + item.topicId,
  487. });
  488. return;
  489. }
  490. this.selObj.bId = item.id;
  491. this.show = false;
  492. this.selObj.pId = item.projectId;
  493. this.selObj.bName = item.businessName;
  494. this.selObj.pName = item.projectName;
  495. this.selObj.aliasName = item.aliasName;
  496. uni.setStorageSync("eduObj", JSON.stringify(this.selObj));
  497. this.subjectList({
  498. businessId: item.id,
  499. projectId: item.projectId,
  500. educationId: this.selObj.eId,
  501. });
  502. this.mergeBusiness();
  503. //初始化
  504. this.initList();
  505. },
  506. businessList(data) {
  507. var self = this;
  508. // /app/common/course/business/list
  509. this.$api.businessList(data).then((res) => {
  510. if (res.data.code == 200) {
  511. self.bList = res.data.rows;
  512. }
  513. });
  514. },
  515. active1(item) {
  516. this.selObj.eId = item.id;
  517. this.selObj.eName = item.educationName;
  518. this.businessList({ educationId: item.id });
  519. },
  520. educationList() {
  521. var self = this;
  522. // /app/common/course/educationType/list
  523. this.$api.educationTypeList().then((res) => {
  524. if (res.data.code == 200) {
  525. self.eList = res.data.rows;
  526. if (self.selObj.eId) {
  527. self.businessList({ educationId: self.selObj.eId });
  528. } else {
  529. this.active1(self.eList[0]);
  530. }
  531. }
  532. });
  533. },
  534. openLeft() {
  535. this.show = true;
  536. },
  537. initList() {
  538. this.paramList[0].pageNum = 1;
  539. this.paramList[1].pageNum = 1;
  540. this.list1 = [];
  541. this.list2 = [];
  542. this.list3 = [];
  543. this.courseList();
  544. this.bankList();
  545. this.liveList();
  546. this.educationList();
  547. },
  548. cMenu(index) {
  549. this.paramList[0].pageNum = 1;
  550. this.paramList[0].subjectId = index;
  551. this.list1 = [];
  552. // this.menuIndex
  553. this.courseList();
  554. },
  555. cMenu1(index) {
  556. this.paramList[1].pageNum = 1;
  557. this.paramList[1].subjectId = index;
  558. this.list2 = [];
  559. // this.menuIndex1 = index;
  560. this.bankList();
  561. },
  562. cMenu2(index) {
  563. this.paramList[2].pageNum = 1;
  564. this.paramList[2].subjectId = index;
  565. this.list3 = [];
  566. // this.menuIndex1 = index;
  567. this.liveList();
  568. },
  569. change(index) {
  570. this.current = index;
  571. },
  572. //课程
  573. courseList() {
  574. var self = this;
  575. var param = this.paramList[0];
  576. this.$api.goodsList(param).then((res) => {
  577. self.paramList[0].total = res.data.total;
  578. self.list1.push.apply(self.list1, res.data.rows);
  579. // if (self.list1.length === res.data.total) {
  580. // self.paramList[0].showStatus = true;
  581. // }
  582. });
  583. },
  584. //题库
  585. bankList() {
  586. var self = this;
  587. var param = this.paramList[1];
  588. this.$api.goodsList(param).then((res) => {
  589. self.paramList[1].total = res.data.total;
  590. self.list2.push.apply(self.list2, res.data.rows);
  591. // if (self.list2.length === res.data.total) {
  592. // self.paramList[1].showStatus = true;
  593. // }
  594. });
  595. },
  596. //直播
  597. liveList() {
  598. var self = this;
  599. var param = this.paramList[2];
  600. this.$api.goodsList(param).then((res) => {
  601. self.paramList[2].total = res.data.total;
  602. self.list3.push.apply(self.list3, res.data.rows);
  603. // if (self.list3.length === res.data.total) {
  604. // self.paramList[2].showStatus = true;
  605. // }
  606. });
  607. },
  608. },
  609. onReachBottom() {
  610. if (this.current == 0) {
  611. if (this.list1.length < this.paramList[0].total) {
  612. this.paramList[0].pageNum++;
  613. this.courseList();
  614. }
  615. }
  616. if (this.current == 1) {
  617. if (this.list2.length < this.paramList[1].total) {
  618. this.paramList[1].pageNum++;
  619. this.bankList();
  620. }
  621. }
  622. },
  623. computed: { ...mapGetters(["userInfo"]) },
  624. };
  625. </script>
  626. <style >
  627. ::-webkit-scrollbar {
  628. width: 0;
  629. height: 0;
  630. color: transparent;
  631. }
  632. page {
  633. background-color: #eaeef1;
  634. }
  635. </style>
  636. <style scoped lang="scss">
  637. .bg_color {
  638. width: 100%;
  639. height: 16rpx;
  640. background-color: #eaeef1;
  641. }
  642. .check_ck {
  643. height: 211rpx;
  644. background: #ffffff;
  645. box-shadow: 0rpx 5rpx 5rpx 1rpx rgba(1, 99, 235, 0.05);
  646. border-radius: 24rpx 24rpx 0rpx 0rpx;
  647. padding: 0 38rpx;
  648. .again_ck {
  649. width: 30%;
  650. display: flex;
  651. align-items: center;
  652. justify-content: space-between;
  653. }
  654. }
  655. .checked {
  656. display: flex;
  657. justify-content: space-between;
  658. height: 108rpx;
  659. line-height: 108rpx;
  660. border-bottom: 1rpx solid #eeeeee;
  661. font-size: 28rpx;
  662. .check_title {
  663. font-size: 32rpx;
  664. font-weight: 500;
  665. color: #333;
  666. white-space: nowrap;
  667. width: 70%;
  668. overflow-x: hidden;
  669. }
  670. }
  671. .contents {
  672. position: relative;
  673. left: 0;
  674. top: 320rpx;
  675. }
  676. .emptyTip {
  677. color: #999999;
  678. font-size: 32rpx;
  679. text-align: center;
  680. margin-top: 20%;
  681. }
  682. .popuBox {
  683. top: 92px;
  684. width: 100%;
  685. bottom: 0;
  686. position: absolute;
  687. overflow-y: scroll;
  688. overflow-x: hidden;
  689. background-color: #ffffff;
  690. }
  691. .activeStys2 {
  692. background: #007aff !important;
  693. color: #ffffff;
  694. }
  695. .tylszB {
  696. text-align: center;
  697. padding: 20rpx 10rpx;
  698. background: #ffffff;
  699. border: 2rpx solid #eeeeee;
  700. border-radius: 16rpx;
  701. margin-top: 15rpx;
  702. font-size: 30rpx;
  703. overflow: hidden;
  704. white-space: nowrap;
  705. text-overflow: ellipsis;
  706. }
  707. .activeStys {
  708. background: linear-gradient(
  709. 90deg,
  710. rgba(1, 94, 234, 0.2),
  711. rgba(255, 255, 255, 0.6)
  712. );
  713. border-radius: 16rpx;
  714. font-weight: bold;
  715. color: #007aff !important;
  716. }
  717. .tylsz {
  718. color: #666;
  719. font-size: 30rpx;
  720. padding: 20rpx 10rpx;
  721. margin-top: 15rpx;
  722. white-space: nowrap;
  723. }
  724. .popup_t1 {
  725. padding-left: 35rpx;
  726. border-bottom: 1rpx solid #eee;
  727. height: 57rpx;
  728. margin-top: 86rpx;
  729. font-weight: bold;
  730. color: #007aff;
  731. font-size: 27rpx;
  732. }
  733. .flex-d {
  734. height: 100%;
  735. background-color: #ffffff;
  736. padding: 0 5%;
  737. font-size: 30rpx;
  738. }
  739. .contentZ {
  740. display: flex;
  741. height: 100%;
  742. padding: 10rpx;
  743. .lzs {
  744. width: 200rpx;
  745. height: 100%;
  746. overflow-y: scroll;
  747. }
  748. .rzs {
  749. margin-left: 40rpx;
  750. flex: 1;
  751. height: 100%;
  752. overflow-y: scroll;
  753. }
  754. }
  755. .contentZ::-webkit-scrollbar {
  756. display: none;
  757. }
  758. .fots {
  759. height: 100rpx;
  760. display: flex;
  761. align-items: center;
  762. justify-content: space-around;
  763. border-top: 1rpx solid #eee;
  764. }
  765. .leftBtns {
  766. font-size: 30rpx;
  767. color: #007aff;
  768. font-weight: 500;
  769. }
  770. .right_Btns {
  771. font-size: 30rpx;
  772. color: #fff;
  773. background-color: #007aff;
  774. border-radius: 24rpx;
  775. height: 60rpx;
  776. line-height: 60rpx;
  777. text-align: center;
  778. padding: 0rpx 23rpx;
  779. box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
  780. }
  781. .blackFont {
  782. color: #333333;
  783. margin: 0 10rpx;
  784. }
  785. .margin30 {
  786. margin: 0 20rpx 0 0;
  787. }
  788. .wk_icon {
  789. width: 24rpx;
  790. height: 24rpx;
  791. margin-right: 12rpx;
  792. }
  793. .noteTag {
  794. font-size: 24rpx;
  795. font-family: PingFang SC;
  796. font-weight: 500;
  797. color: #999999;
  798. align-items: center;
  799. }
  800. .priceTag {
  801. display: flex;
  802. font-size: 32rpx;
  803. font-family: PingFang SC;
  804. font-weight: bold;
  805. color: #fc3f3f;
  806. view::before {
  807. content: "¥";
  808. font-size: 24rpx;
  809. font-weight: bold;
  810. }
  811. }
  812. .sale {
  813. color: #999999;
  814. font-size: 28rpx;
  815. margin-left: 8rpx;
  816. }
  817. .price_line {
  818. color: #999999;
  819. font-size: 28rpx;
  820. text-decoration: line-through;
  821. font-weight: 400;
  822. }
  823. .titleTag {
  824. font-size: 32rpx;
  825. font-weight: bold;
  826. color: #333333;
  827. margin-left: 8rpx;
  828. }
  829. .yearTag {
  830. width: 80rpx;
  831. height: 32rpx;
  832. background: #ebf5ff;
  833. border: 2rpx solid #007aff;
  834. border-radius: 16rpx;
  835. font-size: 24rpx;
  836. color: #007aff;
  837. text-align: center;
  838. line-height: 32rpx;
  839. }
  840. .itemBox {
  841. background: #ffffff;
  842. border-radius: 24rpx;
  843. width: 100%;
  844. padding: 23rpx 22rpx 32rpx 22rpx;
  845. margin-bottom: 24rpx;
  846. box-shadow: 0rpx 0rpx 20rpx 1rpx rgba(1, 99, 235, 0.1);
  847. }
  848. .listBox {
  849. background-color: #eaeef1;
  850. padding: 24rpx 24rpx 150rpx 24rpx;
  851. position: relative;
  852. // top: 235rpx;
  853. }
  854. .menuSel {
  855. width: 100%;
  856. // height: 70rpx;
  857. padding: 30rpx 0rpx;
  858. background: #eaeef1;
  859. white-space: nowrap;
  860. overflow: hidden;
  861. }
  862. .r_sliper {
  863. padding: 0 20rpx;
  864. }
  865. .r_t1 {
  866. // height: 48rpx;
  867. background: #007aff;
  868. border-radius: 8rpx;
  869. padding: 9rpx 21rpx;
  870. // margin-top: 11rpx;
  871. color: #ffffff;
  872. }
  873. .r_t2 {
  874. // height: 48rpx;
  875. background: #ffffff;
  876. border: 2rpx solid #eeeeee;
  877. border-radius: 8rpx;
  878. padding: 9rpx 21rpx;
  879. // margin-top: 11rpx;
  880. color: #666666;
  881. font-size: 30rpx;
  882. }
  883. </style>