myaid.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807
  1. <template>
  2. <view class="content">
  3. <scroll-view scroll-x="true" class="class-box flex" :scroll-left="scrollLeft" :scroll-with-animation="true">
  4. <view @click="tabClick(idx)" class="item" v-for="(item, idx) in navList" :key="idx" >
  5. <view class="time" :class="{ action: idx == tabCurrentIndex }">{{ item.text }}</view>
  6. </view>
  7. </scroll-view>
  8. <!-- <view class="navbar">
  9. <view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
  10. </view> -->
  11. <swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
  12. <swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
  13. <scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData">
  14. <!-- 空白页 -->
  15. <empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
  16. <!-- 订单列表 -->
  17. <view @click="goToOrderDetail(item)" v-for="(item, index) in tabItem.orderList" :key="index" class="order-item">
  18. <view class="item-top flex">
  19. <view class="item-number">
  20. 项目编号:{{item.order_sn}}
  21. </view>
  22. <!-- <view class="item-status" v-if="item.status === 0" style="color: #FA7E67;">审核中</view>
  23. <view class="item-status" v-if="item.status === 2" style="color: #FA7E67;">进行中</view>
  24. <view class="item-status" v-if="item.status === 3" style="color: #FA7E67;">已完成</view> -->
  25. <view class="item-status" v-if="item.order_status === -1" style="color: #999999">{{item.status_txt}}</view>
  26. <view class="item-status" v-else style="color: #FA7E67;">{{item.status_txt === '受捐者反馈'? '已完成':item.status_txt}}</view>
  27. </view>
  28. <view class="item-main flex">
  29. <image :src="item.img" mode="" v-if="item.img"></image>
  30. <image src="../../static/img/moren.png" mode="" v-else></image>
  31. <view class="item-info">
  32. <view class="info-title">
  33. {{item.title}}
  34. </view>
  35. <view class="info-content">
  36. 项目进度: 您的捐赠{{item.order_status === 0 ? '正在审核中,请耐心等待':item.order_status === -1 ? ' 审核未通过,感谢您的爱心!' : '审核已通过' }}
  37. </view>
  38. <view class="info-time">
  39. 申请时间 {{item.add_time | time}}
  40. </view>
  41. </view>
  42. </view>
  43. <view class="item-bottom flex" v-if="item.order_status >= 1">
  44. <!-- <view class="yxs" @click="navTo('/pages/user/intent')">
  45. 捐献意向书
  46. </view> -->
  47. <view class="zs" @click="navTo('/pages/user/thank?project_id='+item.project_id + '&name=' + item.name + '&time=' + item.add_time+'&title=' + item.title ||'')" v-if="item.order_status == 6">
  48. 捐赠证书
  49. </view>
  50. </view>
  51. </view>
  52. <uni-load-more :status="tabItem.loadingType"></uni-load-more>
  53. </scroll-view>
  54. </swiper-item>
  55. </swiper>
  56. </view>
  57. </template>
  58. <script>
  59. import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
  60. import empty from '@/components/empty';
  61. import { mapState } from 'vuex';
  62. import { saveUrl } from '@/utils/loginUtils.js';
  63. import { orderList, orderCancel, orderDel, orderTake } from '@/api/order.js';
  64. import { getProjectInfo, createProject, getDonationInfo, getMyorder} from '../../api/money.js';
  65. export default {
  66. filters: {
  67. time(val) {
  68. let str =''
  69. if(val){
  70. let date = new Date(val * 1000);
  71. let Y = date.getFullYear();
  72. let M = date.getMonth() > 9 ? date.getMonth() : '0' + date.getMonth();
  73. let D = date.getDate() > 9 ? date.getDate() : '0' + date.getDate();
  74. str = Y + '-' + M + '-' + D ;
  75. }
  76. return str
  77. },
  78. },
  79. components: {
  80. uniLoadMore,
  81. empty
  82. },
  83. data() {
  84. return {
  85. tabCurrentIndex: 0,
  86. state: '',
  87. showModal: false,
  88. itemWidht: '12%',
  89. navList: [
  90. {
  91. state: -2,
  92. text: '全部',
  93. loadingType: 'more',
  94. orderList: [
  95. ],
  96. page: 1, //当前页数
  97. limit: 10 //每次信息条数
  98. },
  99. {
  100. state: -1,
  101. text: '未通过',
  102. loadingType: 'more',
  103. orderList: [
  104. ],
  105. page: 1, //当前页数
  106. limit: 10 //每次信息条数
  107. },
  108. {
  109. state: 0,
  110. text: '审核中',
  111. loadingType: 'more',
  112. orderList: [],
  113. page: 1, //当前页数
  114. limit: 10 //每次信息条数
  115. },
  116. {
  117. state: 1,
  118. text: '审核通过',
  119. loadingType: 'more',
  120. orderList: [],
  121. page: 1, //当前页数
  122. limit: 10 //每次信息条数
  123. },
  124. {
  125. state: 2,
  126. text: '已发货',
  127. loadingType: 'more',
  128. orderList: [],
  129. page: 1, //当前页数
  130. limit: 10 //每次信息条数
  131. },
  132. {
  133. state: 3,
  134. text: '已入库',
  135. loadingType: 'more',
  136. orderList: [],
  137. page: 1, //当前页数
  138. limit: 10 //每次信息条数
  139. },
  140. {
  141. state: 4,
  142. text: '已出库',
  143. loadingType: 'more',
  144. orderList: [],
  145. page: 1, //当前页数
  146. limit: 10 //每次信息条数
  147. },
  148. // {
  149. // state: 5,
  150. // text: '发受捐者',
  151. // loadingType: 'more',
  152. // orderList: [],
  153. // page: 1, //当前页数
  154. // limit: 10 //每次信息条数
  155. // },
  156. {
  157. state: 6,
  158. text: '已完成',
  159. loadingType: 'more',
  160. orderList: [],
  161. page: 1, //当前页数
  162. limit: 10 //每次信息条数
  163. }
  164. ]
  165. }
  166. },
  167. onLoad(options) {
  168. this.state = options.state*1;
  169. console.log(this.state)
  170. saveUrl();
  171. /**
  172. * 修复app端点击除全部订单外的按钮进入时不加载数据的问题
  173. * 替换onLoad下代码即可
  174. */
  175. // this.tabCurrentIndex = options.state;
  176. // #ifndef MP
  177. this.loadData();
  178. // #endif
  179. // #ifdef MP
  180. if (options.state == -2) {
  181. this.loadData();
  182. }
  183. // #endif
  184. // this.getMyorder()
  185. },
  186. computed: {
  187. ...mapState(['userInfo']),
  188. scrollLeft() {
  189. if (this.tabCurrentIndex > 1) {
  190. return this.itemWidht * (this.tabCurrentIndex - 1.5);
  191. } else {
  192. return 0;
  193. }
  194. }
  195. },
  196. methods: {
  197. // 确认收货
  198. orderTake(item, index) {
  199. let obj = this;
  200. uni.showModal({
  201. title: '是否确认收货?',
  202. success: function(res) {
  203. if (res.confirm) {
  204. orderTake({
  205. uni: item.order_id
  206. })
  207. .then(e => {
  208. obj.navList[obj.tabCurrentIndex].orderList.splice(index, 1);
  209. uni.showToast({
  210. title: '收货成功',
  211. icon: 'none'
  212. });
  213. })
  214. .catch(e => {
  215. console.log(e);
  216. });
  217. } else if (res.cancel) {
  218. console.log('用户点击取消');
  219. }
  220. }
  221. });
  222. },
  223. // 跳转到查询快递页面
  224. expressCheck(item) {
  225. uni.navigateTo({
  226. url: '/pages/order/expressInfo?id=' + item.id
  227. });
  228. },
  229. //跳转到订单详情
  230. goToOrderDetail(e) {
  231. uni.navigateTo({
  232. url: '/pages/order/orderDetail?id=' + e.order_id
  233. });
  234. },
  235. //分享
  236. share(e) {
  237. console.log(e);
  238. uni.navigateTo({
  239. url: '/pages/product/details?pink_id=' + e.pink_id
  240. });
  241. },
  242. // 申请退款
  243. orderRefund(e) {
  244. uni.navigateTo({
  245. url: '/pages/order/orderRefund?id=' + e.order_id
  246. });
  247. },
  248. // 订单支付
  249. orderPay(e) {
  250. if (e.combination_id > 0) {
  251. uni.navigateTo({
  252. url: '/pages/money/pay?type=1&ordid=' + e.order_id + '&money=' + e.pay_price + '&goodsType=2'
  253. });
  254. } else {
  255. uni.navigateTo({
  256. url: '/pages/money/pay?type=1&ordid=' + e.order_id + '&money=' + e.pay_price
  257. });
  258. }
  259. },
  260. //获取订单列表
  261. loadData(source) {
  262. //这里是将订单挂载到tab列表下
  263. let index = this.tabCurrentIndex;
  264. let navItem = this.navList[index];
  265. let state = navItem.state;
  266. if (source === 'tabChange' && navItem.loaded === true) {
  267. //tab切换只有第一次需要加载数据
  268. return;
  269. }
  270. if (navItem.loadingType === 'loading') {
  271. //防止重复加载
  272. return;
  273. }
  274. if (navItem.loadingType === 'noMore') {
  275. //防止重复加载
  276. return;
  277. }
  278. // 修改当前对象状态为加载中
  279. navItem.loadingType = 'loading';
  280. getMyorder({
  281. page: navItem.page,
  282. limit: navItem.limit,
  283. status: state
  284. }).then( ({data}) => {
  285. console.log( data,'888888888888888888888888')
  286. // let arr = data.list.map( item => {
  287. // return e
  288. // })
  289. if(data.list) {
  290. data.list = data.list.map(item => {
  291. if(item.project_id !== 0){
  292. getProjectInfo({
  293. id: item.project_id
  294. }).then( res => {
  295. let data = JSON.parse(res.msg)
  296. console.log(data,'project_id+++++++++++++++++++')
  297. // item.img = data.img
  298. this.$set(item,'img',data.img)
  299. this.$set(item,'title',data.title)
  300. console.log(item)
  301. })
  302. }else {
  303. this.$set(item,'img','')
  304. this.$set(item,'title',item.name+'的爱心捐赠')
  305. }
  306. return item
  307. })
  308. }
  309. // console.log(arr,'99999999999999999999999999')
  310. navItem.orderList = navItem.orderList.concat(data.list)
  311. console.log(navItem.orderList,'++++++++++++++++++++++')
  312. navItem.page++;
  313. if(navItem.limit == data.list.length) {
  314. navItem.loadingType = 'more';
  315. return
  316. }else {
  317. navItem.loadingType = 'noMore';
  318. }
  319. this.$set(navItem, 'loaded', true);
  320. }).catch( err => {
  321. console.log(err)
  322. })
  323. // orderList({
  324. // type: state,
  325. // page: navItem.page,
  326. // limit: navItem.limit
  327. // })
  328. // .then(({ data }) => {
  329. // let arr = data.map(e => {
  330. // let b = this.orderStateExp(e.status);
  331. // e.stateTip = b.stateTip;
  332. // e.stateTipColor = b.stateTipColor;
  333. // return e;
  334. // });
  335. // navItem.orderList = navItem.orderList.concat(arr);
  336. // // console.log(navItem.orderList);
  337. // navItem.page++;
  338. // if (navItem.limit == data.length) {
  339. // //判断是否还有数据, 有改为 more, 没有改为noMore
  340. // navItem.loadingType = 'more';
  341. // return;
  342. // } else {
  343. // //判断是否还有数据, 有改为 more, 没有改为noMore
  344. // navItem.loadingType = 'noMore';
  345. // }
  346. // this.$set(navItem, 'loaded', true);
  347. // })
  348. // .catch(e => {
  349. // console.log(e);
  350. // });
  351. },
  352. //swiper 切换
  353. changeTab(e) {
  354. this.tabCurrentIndex = e.target.current;
  355. this.loadData('tabChange');
  356. },
  357. //顶部tab点击
  358. tabClick(index) {
  359. this.tabCurrentIndex = index;
  360. this.loadData('tabChange');
  361. },
  362. //删除订单
  363. deleteOrder(item, index) {
  364. uni.showModal({
  365. content: '是否确认删除订单?',
  366. success: res => {
  367. uni.showLoading({
  368. title: '请稍后'
  369. });
  370. setTimeout((e) => {
  371. orderDel({
  372. uni: item.order_id
  373. })
  374. .then(e => {
  375. this.navList[this.tabCurrentIndex].orderList.splice(index, 1);
  376. uni.hideLoading();
  377. })
  378. .catch(e => {
  379. console.log(e);
  380. uni.hideLoading();
  381. });
  382. },1000)
  383. },
  384. fail: e => {
  385. console.log(e);
  386. }
  387. });
  388. },
  389. //订单状态文字和颜色
  390. orderStateExp(state) {
  391. let stateTip = '',
  392. stateTipColor = '#EF041F';
  393. switch (+state) {
  394. case 0:
  395. stateTip = '全部';
  396. break;
  397. case 1:
  398. stateTip = '待付款';
  399. break;
  400. case 2:
  401. stateTip = '待发货';
  402. break;
  403. case 3:
  404. stateTip = '待收货';
  405. break;
  406. case 4:
  407. stateTip = '已完成';
  408. stateTipColor = '#5dbc7c';
  409. break;
  410. case 9:
  411. stateTip = '订单已关闭';
  412. stateTipColor = '#909399';
  413. break;
  414. //更多自定义
  415. }
  416. return { stateTip, stateTipColor };
  417. },
  418. navTo(url) {
  419. uni.navigateTo({
  420. url: url
  421. })
  422. },
  423. getMyorder() {
  424. getMyorder({
  425. status: 6
  426. }).then(res => {
  427. console.log(res,'66666666666666')
  428. })
  429. }
  430. }
  431. };
  432. </script>
  433. <style lang="scss">
  434. page,
  435. .content {
  436. background: $page-color-base;
  437. height: 100%;
  438. }
  439. .swiper-box {
  440. height: calc(100% - 40px);
  441. // padding: 0 20rpx;
  442. }
  443. .list-scroll-content {
  444. height: 100%;
  445. }
  446. .navbar {
  447. display: flex;
  448. height: 40px;
  449. padding: 0 5px;
  450. background: #fff;
  451. box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
  452. position: relative;
  453. z-index: 10;
  454. .nav-item {
  455. width: 250rpx;
  456. flex: 1;
  457. display: flex;
  458. justify-content: center;
  459. align-items: center;
  460. height: 100%;
  461. font-size: 15px;
  462. color: $font-color-dark;
  463. position: relative;
  464. &.current {
  465. color: #FF0000;
  466. &:after {
  467. content: '';
  468. position: absolute;
  469. left: 50%;
  470. bottom: 0;
  471. transform: translateX(-50%);
  472. width: 44px;
  473. height: 0;
  474. border-bottom: 2px solid #FF0000;
  475. }
  476. }
  477. }
  478. }
  479. .uni-swiper-item {
  480. height: auto;
  481. }
  482. .order-item {
  483. background-color: #fff;
  484. padding: 0 20rpx;
  485. margin-bottom: 15rpx;
  486. margin-top: 15rpx;
  487. .item-top {
  488. justify-content: space-between;
  489. height: 79rpx;
  490. border-bottom: 1px solid #E1E1E5;
  491. line-height: 79rpx;
  492. font-size: 26rpx;
  493. font-family: PingFang SC;
  494. font-weight: bold;
  495. color: #333333;
  496. }
  497. .item-main {
  498. height: 210rpx;
  499. align-items: center;
  500. image {
  501. width: 220rpx;
  502. height: 170rpx;
  503. background: #FFFFFF;
  504. border: 1px solid #DDDDDD;
  505. border-radius: 10rpx;
  506. margin: 18rpx;
  507. }
  508. .item-info {
  509. width: 471rpx;
  510. height: 170rpx;
  511. position: relative;
  512. .info-title {
  513. font-size: 32rpx;
  514. // font-size: 24rpx;
  515. font-family: PingFang SC;
  516. font-weight: bold;
  517. color: #323232;
  518. line-height: 1;
  519. // position: absolute;
  520. // top: 0;
  521. }
  522. .info-content {
  523. padding-top: 14rpx;
  524. font-size: 22rpx;
  525. font-family: PingFang SC;
  526. font-weight: 500;
  527. color: #666666;
  528. line-height: 1.5;
  529. }
  530. .info-time {
  531. font-size: 22rpx;
  532. font-family: PingFang SC;
  533. font-weight: 500;
  534. color: #999999;
  535. position: absolute;
  536. right: 0;
  537. bottom: 0;
  538. }
  539. }
  540. }
  541. .item-bottom {
  542. height: 96rpx;
  543. border-top: 1px solid #E1E1E5;
  544. justify-content: flex-end;
  545. align-items: center;
  546. view {
  547. width: 144rpx;
  548. height: 55rpx;
  549. line-height: 55rpx;
  550. text-align: center;
  551. border-radius: 28rpx;
  552. font-size: 24rpx;
  553. font-family: PingFang SC;
  554. font-weight: 500;
  555. }
  556. .yxs {
  557. border: 2px solid #FA7E67;
  558. color: #FA7E67;
  559. line-height: 50rpx;
  560. }
  561. .zs {
  562. background: #FA7E67;
  563. color: #fff;
  564. margin-left: 15rpx;
  565. }
  566. }
  567. }
  568. // 积分投注弹窗
  569. .mask {
  570. z-index: 10;
  571. position: fixed;
  572. top: 0;
  573. right: 0;
  574. bottom: 0;
  575. left: 0;
  576. background-color: rgba(0, 0, 0, 0.5);
  577. width: 100%;
  578. height: 100%;
  579. display: flex;
  580. justify-content: center;
  581. align-items: center;
  582. flex-direction: column;
  583. .pop {
  584. z-index: 12;
  585. width: 560rpx;
  586. height: 379rpx;
  587. background: rgba(255, 255, 255, 1);
  588. border-radius: 30px;
  589. .pop-box {
  590. width: 100%;
  591. height: 100%;
  592. display: flex;
  593. flex-direction: column;
  594. text-align: center;
  595. align-items: center;
  596. margin-top: -72rpx !important;
  597. .pop-img {
  598. width: 177rpx;
  599. height: 186rpx;
  600. margin-bottom: 34rpx;
  601. }
  602. .pop-title {
  603. height: 34rpx;
  604. font-size: 36rpx;
  605. font-weight: 500;
  606. color: rgba(51, 51, 51, 1);
  607. margin-bottom: 32rpx;
  608. }
  609. .number {
  610. width: 454rpx;
  611. height: 78rpx;
  612. background: rgba(234, 234, 234, 1);
  613. background: #eaeaea;
  614. }
  615. }
  616. //关闭按钮
  617. .close-box {
  618. margin-top: 130rpx;
  619. text-align: center;
  620. .close {
  621. width: 83rpx;
  622. height: 83rpx;
  623. }
  624. }
  625. }
  626. }
  627. /* load-more */
  628. .uni-load-more {
  629. display: flex;
  630. flex-direction: row;
  631. height: 80rpx;
  632. align-items: center;
  633. justify-content: center;
  634. }
  635. .uni-load-more__text {
  636. font-size: 28rpx;
  637. color: #999;
  638. }
  639. .uni-load-more__img {
  640. height: 24px;
  641. width: 24px;
  642. margin-right: 10px;
  643. }
  644. .uni-load-more__img > view {
  645. position: absolute;
  646. }
  647. .uni-load-more__img > view view {
  648. width: 6px;
  649. height: 2px;
  650. border-top-left-radius: 1px;
  651. border-bottom-left-radius: 1px;
  652. background: #999;
  653. position: absolute;
  654. opacity: 0.2;
  655. transform-origin: 50%;
  656. animation: load 1.56s ease infinite;
  657. }
  658. .uni-load-more__img > view view:nth-child(1) {
  659. transform: rotate(90deg);
  660. top: 2px;
  661. left: 9px;
  662. }
  663. .uni-load-more__img > view view:nth-child(2) {
  664. transform: rotate(180deg);
  665. top: 11px;
  666. right: 0;
  667. }
  668. .uni-load-more__img > view view:nth-child(3) {
  669. transform: rotate(270deg);
  670. bottom: 2px;
  671. left: 9px;
  672. }
  673. .uni-load-more__img > view view:nth-child(4) {
  674. top: 11px;
  675. left: 0;
  676. }
  677. .load1,
  678. .load2,
  679. .load3 {
  680. height: 24px;
  681. width: 24px;
  682. }
  683. .load2 {
  684. transform: rotate(30deg);
  685. }
  686. .load3 {
  687. transform: rotate(60deg);
  688. }
  689. .load1 view:nth-child(1) {
  690. animation-delay: 0s;
  691. }
  692. .load2 view:nth-child(1) {
  693. animation-delay: 0.13s;
  694. }
  695. .load3 view:nth-child(1) {
  696. animation-delay: 0.26s;
  697. }
  698. .load1 view:nth-child(2) {
  699. animation-delay: 0.39s;
  700. }
  701. .load2 view:nth-child(2) {
  702. animation-delay: 0.52s;
  703. }
  704. .load3 view:nth-child(2) {
  705. animation-delay: 0.65s;
  706. }
  707. .load1 view:nth-child(3) {
  708. animation-delay: 0.78s;
  709. }
  710. .load2 view:nth-child(3) {
  711. animation-delay: 0.91s;
  712. }
  713. .load3 view:nth-child(3) {
  714. animation-delay: 1.04s;
  715. }
  716. .load1 view:nth-child(4) {
  717. animation-delay: 1.17s;
  718. }
  719. .load2 view:nth-child(4) {
  720. animation-delay: 1.3s;
  721. }
  722. .load3 view:nth-child(4) {
  723. animation-delay: 1.43s;
  724. }
  725. @-webkit-keyframes load {
  726. 0% {
  727. opacity: 1;
  728. }
  729. 100% {
  730. opacity: 0.2;
  731. }
  732. }
  733. .class-box {
  734. background: #FFFFFF;
  735. white-space: nowrap;
  736. height: 78rpx;
  737. .item {
  738. text-align: center;
  739. display: inline-block;
  740. color: $font-color-base;
  741. margin: 26rpx 34rpx 15rpx 29rpx;
  742. background-color: #fff;
  743. line-height: 1;
  744. .time {
  745. font-family: PingFang SC;
  746. font-weight: bold;
  747. font-size: 30rpx;
  748. padding-bottom: 19rpx;
  749. &.action {
  750. color: #FF0000;
  751. border-bottom: 4rpx solid #ff0000;
  752. }
  753. }
  754. }
  755. }
  756. </style>