myland.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. <template>
  2. <view :class="[AppTheme]" class="content">
  3. <!-- #ifdef APP-PLUS||MP-WEIXIN -->
  4. <u-sticky offsetTop="0" style="z-index: 10;">
  5. <!-- #endif -->
  6. <!-- #ifdef H5 -->
  7. <u-sticky offsetTop="-44" style="z-index: 10;">
  8. <!-- #endif -->
  9. <view class="navbar">
  10. <u-tabs ref="uTabs" :list="navList" :activeStyle="{
  11. color: primary,
  12. transform: 'scale(1.05)'
  13. }" :inactiveStyle="{
  14. color: '#606266',
  15. transform: 'scale(1)'
  16. }" lineWidth="30" :scrollable="false" :lineColor="primary" :current="tabCurrentIndex" @click="tabClick">
  17. </u-tabs>
  18. </view>
  19. </u-sticky>
  20. <swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
  21. <swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex" @touchmove.stop="">
  22. <scroll-view class="list-scroll-content" scroll-y @scrolltolower="handle">
  23. <view>
  24. <view class="notes-con" v-for="(item, index) in orderlist" :key="index">
  25. <view class="total-share" @click.stop="goDetails(item.id)">
  26. <view class="ts-left">
  27. <view class="ts-h">
  28. <view class="ts-bg bg-primary"><text class="all-p ">农场认养</text></view>
  29. <text class="expect">订单:{{ item.id }}</text>
  30. </view>
  31. <view class="ts-f">
  32. <view>
  33. <view class="num">{{ item.payprice }}</view>
  34. <view class="sam zi">元</view>
  35. </view>
  36. <view>
  37. <view class="num">3</view>
  38. <view class="sam zi">年</view>
  39. </view>
  40. <view>
  41. <view class="num">{{ item.soil_number }}</view>
  42. <view class="sam zi">平方米</view>
  43. </view>
  44. </view>
  45. </view>
  46. <view class="ts-right">
  47. <view class="abso border-primary">
  48. <image :src="settingFile.root_img+'/static/app/imgs/mine/17.png'" mode="" />
  49. <view class="now text-primary" v-if="swiperCurrent == 1">已到期</view>
  50. <view class="now text-primary" v-if="swiperCurrent == 0">托管中</view>
  51. </view>
  52. </view>
  53. </view>
  54. <view class="action-box b-t">
  55. <button class="action-btn recom text-primary border-primary"
  56. @click="goOrderDetail(item)" >查看订单</button>
  57. </view>
  58. </view>
  59. </view>
  60. <u-modal :showCancelButton="true" :title="title" :content="content" :show="flag"
  61. @confirm="confirm" @cancel="cancel"></u-modal>
  62. <u-loadmore :line="true" :status="loadingType" />
  63. </scroll-view >
  64. </swiper-item>
  65. </swiper>
  66. </view>
  67. </template>
  68. <script>
  69. import Landapi from '@/api/land/index.js';
  70. import Mallapi from '@/api/mall/index.js';
  71. export default {
  72. data() {
  73. return {
  74. triggered: true, //设置当前下拉刷新的状态
  75. refresherEnabled: true,
  76. tabCurrentIndex: 0,
  77. status: 'loadmore',
  78. primary: this.$theme.primary,
  79. settingFile: getApp().globalData.siteinfo,
  80. // 当前排序方式视图
  81. nowsetyindex: 1,
  82. // 订单列表
  83. orderlist: [],
  84. //顶部距离
  85. scrollTop: 0,
  86. modalshow: false,
  87. content: '该订单还未支付,是否先支付?',
  88. seorder: {},
  89. nowindex: 1, //当前列表分页
  90. customstyle: {
  91. background: '#F4F6F8'
  92. },
  93. navList: [{
  94. name: '全部',
  95. loadingType: 'more'
  96. },
  97. {
  98. name: '租赁中',
  99. loadingType: 'more'
  100. }
  101. ],
  102. loadingType: 'more',
  103. flag: false,
  104. title: '温馨提示',
  105. current: 0,
  106. swiperCurrent: 0,
  107. nomorelist: false,
  108. _freshing: false
  109. };
  110. },
  111. onLoad() {
  112. this.getorderlist(this.swiperCurrent, this.nowindex);
  113. this._freshing = false;
  114. },
  115. onPullDownRefresh() {
  116. console.log('下拉刷新了')
  117. this.nowindex = 1
  118. console.log(this.swiperCurrent,'this.swiperCurrent')
  119. this.getorderlist(this.swiperCurrent+1, this.nowindex);
  120. setTimeout(() => {
  121. uni.stopPullDownRefresh()
  122. }, 1500)
  123. },
  124. onReachBottom() {
  125. console.log('上拉加载了')
  126. this.nowindex++
  127. let parms = {
  128. p: this.nowindex,
  129. type: this.swiperCurrent
  130. };
  131. this.status = 'loading'
  132. Landapi.getlandorder(parms).then(res => {
  133. if (res.status == 1) {
  134. if (res.data !== null && res.data !== undefined && res.data.length > 0) {
  135. // 获取服务套餐详情集合
  136. this.status = 'nomore'
  137. res.data.forEach(item => {
  138. that.orderlist.push(item);
  139. });
  140. if (res.data.length == 10) {
  141. this.status = 'loadmore'
  142. } else {
  143. this.status = 'nomore'
  144. }
  145. }
  146. } else {
  147. this.nowindex--
  148. this.status = "nomore"
  149. }
  150. })
  151. },
  152. onShow() {},
  153. methods: {
  154. tabClick(e) {
  155. this.p = 1;
  156. this.tabCurrentIndex = e.index;
  157. this.tabsChange(e)
  158. },
  159. goOrderDetail(item) {
  160. uni.navigateTo({
  161. url: `/pagesD/pages/order/orderDetail?sid=${item.sid}&id=${item.id}`
  162. });
  163. },
  164. step: function(i) {
  165. var id = 'progress' + i;
  166. return id;
  167. },
  168. refund(id, index) {
  169. var that = this;
  170. let tmplIdsone = that.$config.temlist;
  171. if (tmplIdsone) {
  172. that.$until.requestSubscribeMessage([tmplIdsone['returnReminder']], tmplIdsone, function() {
  173. that.refund2(id, index)
  174. });
  175. } else {
  176. that.refund2(id, index)
  177. }
  178. },
  179. refund2(id, index) {
  180. let that = this;
  181. uni.showModal({
  182. title: '提示',
  183. content: '请确认是否申请土地订单退款!',
  184. success: function(res) {
  185. if (res.confirm) {
  186. Landapi.soilTuikuan({
  187. id
  188. }).then(res => {
  189. if (res.status == 1) {
  190. that.orderlist[index].isback = 0
  191. that.orderlist[index].status_period = 3
  192. uni.showToast({
  193. title: res.msg,
  194. icon: "success"
  195. })
  196. } else {
  197. uni.showToast({
  198. title: res.msg,
  199. icon: "none"
  200. })
  201. }
  202. })
  203. } else if (res.cancel) {
  204. console.log('用户点击取消');
  205. }
  206. }
  207. });
  208. },
  209. // tabs通知swiper切换
  210. tabsChange(e) {
  211. this.nomorelist = false;
  212. this.nowindex = 1;
  213. if (this.swiperCurrent === e.index) {
  214. return;
  215. } else {
  216. this.swiperCurrent = e.index;
  217. this.orderlist = [];
  218. this.getorderlistcase(this.swiperCurrent + 1, this.nowindex);
  219. }
  220. },
  221. //发起根据id查看订单信息请求
  222. lookorderbyid(order) {
  223. let that = this;
  224. that.modalshow = true;
  225. that.seorder = order;
  226. },
  227. //获取订单列表
  228. getorderlist(type, p) {
  229. var that = this;
  230. let parms = {
  231. p: p,
  232. type: type
  233. };
  234. if (!this.nomorelist) {
  235. Landapi.getlandorder(parms).then(res => {
  236. if (res.status == 1) {
  237. if (res.data !== null && res.data !== undefined && res.data.length > 0) {
  238. // 获取服务套餐详情集合
  239. this.orderlist = []
  240. res.data.forEach(item => {
  241. that.orderlist.push(item);
  242. });
  243. this.nowindex = p;
  244. this.status = 'nomore'
  245. if (res.data.length == 10) {
  246. this.status = 'loadmore'
  247. } else {
  248. this.status = 'nomore'
  249. }
  250. }
  251. } else {
  252. this.status = 'nomore'
  253. this.nomorelist = true;
  254. }
  255. });
  256. }
  257. },
  258. //获取订单列表
  259. getorderlistcase(type, p) {
  260. var that = this;
  261. let parms = {
  262. p: p,
  263. type: type
  264. };
  265. if (!this.nomorelist) {
  266. Landapi.getlandorder(parms).then(res => {
  267. if (res.status == 1) {
  268. if (res.data !== null && res.data !== undefined && res.data.length > 0) {
  269. // 获取服务套餐详情集合
  270. that.orderlist = res.data;
  271. this.nowindex = p;
  272. }
  273. } else {
  274. this.nomorelist = true;
  275. }
  276. });
  277. }
  278. },
  279. //修改订单
  280. uporderdata(item) {
  281. var that = this;
  282. let tmplIdsone = that.$config.temlist;
  283. if (tmplIdsone) {
  284. that.$until.requestSubscribeMessage([tmplIdsone['orderSuccess'], tmplIdsone['orderDelivery'],
  285. tmplIdsone['returnReminder']
  286. ], tmplIdsone, function() {
  287. that.uporderdata2(item)
  288. });
  289. } else {
  290. that.uporderdata2(item)
  291. }
  292. },
  293. uporderdata2(item) {
  294. let that = this;
  295. //发送订单id获取订单总金额,在执行成功的回调函数发起支付请求
  296. Landapi.lookorderbyid({
  297. id: item.id
  298. }).then(res => {
  299. if (res.status == 1) {
  300. let seeds = [];
  301. res.data.seeds.forEach((item, index) => {
  302. seeds.push({
  303. seed_id: item.seed_id,
  304. seed_num: item.seed_num
  305. })
  306. })
  307. let parms = {
  308. id: item.id,
  309. seeds: JSON.stringify(seeds),
  310. money: res.data.order_money
  311. };
  312. that.$refs.payment.payopen(parms);
  313. } else {
  314. that.$api.msg(res.msg);
  315. }
  316. });
  317. },
  318. //查看信息弹出框确定操作
  319. modalconfirm() {
  320. this.nowpay(this.seorder);
  321. },
  322. //追加种子
  323. appseed(item) {
  324. let that = this;
  325. let parms = {
  326. id: item.id
  327. };
  328. Landapi.lookorderbyid(parms).then(res => {
  329. if (res.status == 1) {
  330. let params2 = {
  331. id: item.id,
  332. seeds: res.data.seeds,
  333. subdivision_area: item.subdivision_area
  334. };
  335. //传导种子集合,选择完毕后更新种子值
  336. uni.navigateTo({
  337. url: '/pagesB/pages/chooseland/seed/appseed/appseed?params=' + JSON.stringify(
  338. params2)
  339. });
  340. } else {
  341. that.$api.msg(res.msg);
  342. }
  343. });
  344. },
  345. //查看信息弹出框取消操作
  346. modalcancel() {
  347. uni.navigateTo({
  348. url: '/pagesB/pagesD/pages/orderdeleti/orderdeleti?orderid=' + this.seorder.id
  349. });
  350. },
  351. navTo(url) {
  352. this.$until.toUrl(url);
  353. },
  354. }
  355. };
  356. </script>
  357. <style lang="scss" scoped>
  358. page{
  359. height: 101%;
  360. }
  361. .content {
  362. background: $page-color-base;
  363. height:100%;
  364. box-sizing: border-box;
  365. }
  366. .swiper-box {
  367. height: calc(100vh - 44px);
  368. }
  369. .list-scroll-content {
  370. height: 100%;
  371. overflow-y: auto;
  372. }
  373. .navbar {
  374. height: 40px;
  375. padding: 0 5px;
  376. background: #fff;
  377. box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
  378. width: 100%;
  379. z-index: 10;
  380. .nav-item {
  381. flex: 1;
  382. display: flex;
  383. justify-content: center;
  384. align-items: center;
  385. height: 100%;
  386. font-size: 15px;
  387. position: relative;
  388. &.current {
  389. &:after {
  390. content: '';
  391. position: absolute;
  392. left: 50%;
  393. bottom: 0;
  394. transform: translateX(-50%);
  395. width: 44px;
  396. height: 0;
  397. border-bottom-width: 2px;
  398. border-bottom-style: solid;
  399. }
  400. }
  401. }
  402. }
  403. .uni-swiper-item {
  404. height: auto;
  405. }
  406. .order-item {
  407. display: flex;
  408. flex-direction: column;
  409. padding-left: 30upx;
  410. background: #fff;
  411. margin-top: 16upx;
  412. .i-top {
  413. display: flex;
  414. align-items: center;
  415. height: 80upx;
  416. padding-right: 30upx;
  417. font-size: $font-base;
  418. color: $font-color-dark;
  419. position: relative;
  420. .time {
  421. flex: 1;
  422. }
  423. .state {
  424. color: $base-color;
  425. }
  426. .del-btn {
  427. padding: 10upx 0 10upx 36upx;
  428. font-size: $font-lg;
  429. color: $font-color-light;
  430. position: relative;
  431. &:after {
  432. content: '';
  433. width: 0;
  434. height: 30upx;
  435. border-left: 1px solid $border-color-dark;
  436. position: absolute;
  437. left: 20upx;
  438. top: 50%;
  439. transform: translateY(-50%);
  440. }
  441. }
  442. }
  443. /* 多条商品 */
  444. .goods-box {
  445. height: 160upx;
  446. padding: 20upx 0;
  447. white-space: nowrap;
  448. .goods-item {
  449. width: 120upx;
  450. height: 120upx;
  451. display: inline-block;
  452. margin-right: 24upx;
  453. }
  454. .goods-img {
  455. display: block;
  456. width: 100%;
  457. height: 100%;
  458. }
  459. }
  460. /* 单条商品 */
  461. .goods-box-single {
  462. display: flex;
  463. padding: 20upx 0;
  464. .goods-img {
  465. display: block;
  466. width: 120upx;
  467. height: 120upx;
  468. }
  469. .right {
  470. flex: 1;
  471. display: flex;
  472. flex-direction: column;
  473. padding: 0 30upx 0 24upx;
  474. overflow: hidden;
  475. .title {
  476. font-size: $font-base + 2upx;
  477. color: $font-color-dark;
  478. line-height: 1;
  479. }
  480. .attr-box {
  481. font-size: $font-sm + 2upx;
  482. color: $font-color-light;
  483. padding: 10upx 12upx;
  484. }
  485. .price {
  486. font-size: $font-base + 2upx;
  487. color: $font-color-dark;
  488. &:before {
  489. content: '¥';
  490. font-size: $font-sm;
  491. margin: 0 2upx 0 8upx;
  492. }
  493. }
  494. }
  495. }
  496. .price-box {
  497. display: flex;
  498. justify-content: flex-end;
  499. align-items: baseline;
  500. padding: 20upx 30upx;
  501. font-size: $font-sm + 2upx;
  502. color: $font-color-light;
  503. .num {
  504. margin: 0 8upx;
  505. color: $font-color-dark;
  506. }
  507. .price {
  508. font-size: $font-lg;
  509. color: $font-color-dark;
  510. &:before {
  511. content: '¥';
  512. font-size: $font-sm;
  513. margin: 0 2upx 0 8upx;
  514. }
  515. }
  516. }
  517. .action-box {
  518. display: flex;
  519. justify-content: flex-end;
  520. align-items: center;
  521. height: 100upx;
  522. position: relative;
  523. padding-right: 30upx;
  524. }
  525. .action-btn {
  526. width: 160upx;
  527. height: 60upx;
  528. margin: 0;
  529. margin-left: 24upx;
  530. padding: 0;
  531. text-align: center;
  532. line-height: 60upx;
  533. font-size: $font-sm + 2upx;
  534. background: #fff;
  535. border-radius: 100px;
  536. &:after {
  537. border-radius: 100px;
  538. }
  539. &.recom {
  540. background: #fff9f9;
  541. }
  542. }
  543. }
  544. /* load-more */
  545. .uni-load-more {
  546. display: flex;
  547. flex-direction: row;
  548. height: 80upx;
  549. align-items: center;
  550. justify-content: center;
  551. }
  552. .uni-load-more__text {
  553. font-size: 28upx;
  554. color: #999;
  555. }
  556. .uni-load-more__img {
  557. height: 24px;
  558. width: 24px;
  559. margin-right: 10px;
  560. }
  561. .uni-load-more__img>view {
  562. position: absolute;
  563. }
  564. .uni-load-more__img>view view {
  565. width: 6px;
  566. height: 2px;
  567. border-top-left-radius: 1px;
  568. border-bottom-left-radius: 1px;
  569. background: #999;
  570. position: absolute;
  571. opacity: 0.2;
  572. transform-origin: 50%;
  573. animation: load 1.56s ease infinite;
  574. }
  575. .uni-load-more__img>view view:nth-child(1) {
  576. transform: rotate(90deg);
  577. top: 2px;
  578. left: 9px;
  579. }
  580. .uni-load-more__img>view view:nth-child(2) {
  581. transform: rotate(180deg);
  582. top: 11px;
  583. right: 0;
  584. }
  585. .uni-load-more__img>view view:nth-child(3) {
  586. transform: rotate(270deg);
  587. bottom: 2px;
  588. left: 9px;
  589. }
  590. .uni-load-more__img>view view:nth-child(4) {
  591. top: 11px;
  592. left: 0;
  593. }
  594. .load1,
  595. .load2,
  596. .load3 {
  597. height: 24px;
  598. width: 24px;
  599. }
  600. .load2 {
  601. transform: rotate(30deg);
  602. }
  603. .load3 {
  604. transform: rotate(60deg);
  605. }
  606. .load1 view:nth-child(1) {
  607. animation-delay: 0s;
  608. }
  609. .load2 view:nth-child(1) {
  610. animation-delay: 0.13s;
  611. }
  612. .load3 view:nth-child(1) {
  613. animation-delay: 0.26s;
  614. }
  615. .load1 view:nth-child(2) {
  616. animation-delay: 0.39s;
  617. }
  618. .load2 view:nth-child(2) {
  619. animation-delay: 0.52s;
  620. }
  621. .load3 view:nth-child(2) {
  622. animation-delay: 0.65s;
  623. }
  624. .load1 view:nth-child(3) {
  625. animation-delay: 0.78s;
  626. }
  627. .load2 view:nth-child(3) {
  628. animation-delay: 0.91s;
  629. }
  630. .load3 view:nth-child(3) {
  631. animation-delay: 1.04s;
  632. }
  633. .load1 view:nth-child(4) {
  634. animation-delay: 1.17s;
  635. }
  636. .load2 view:nth-child(4) {
  637. animation-delay: 1.3s;
  638. }
  639. .load3 view:nth-child(4) {
  640. animation-delay: 1.43s;
  641. }
  642. @-webkit-keyframes load {
  643. 0% {
  644. opacity: 1;
  645. }
  646. 100% {
  647. opacity: 0.2;
  648. }
  649. }
  650. </style>
  651. <style lang="scss">
  652. page {
  653. width: 100%;
  654. height: 100%;
  655. }
  656. // .subrecord {
  657. // width: 100%;
  658. // min-height: 100%;
  659. // padding-top: 0.1rpx;
  660. // padding-bottom: 20rpx;
  661. // background: #f1f1f1;
  662. // position: relative;
  663. .no-data {
  664. width: 160rpx;
  665. height: 160rpx;
  666. position: absolute;
  667. top: 35%;
  668. left: 50%;
  669. margin-left: -80rpx;
  670. }
  671. .no-data image {
  672. width: 100%;
  673. height: 100%;
  674. }
  675. .notes-con {
  676. width: calc(100% - 40rpx);
  677. margin: 0 auto;
  678. border-radius: 20rpx;
  679. background-color: #ffffff;
  680. }
  681. .total-share {
  682. width: 100%;
  683. display: flex;
  684. justify-content: flex-start;
  685. margin: 20rpx auto;
  686. }
  687. .action-box {
  688. display: flex;
  689. justify-content: flex-end;
  690. align-items: center;
  691. height: 100upx;
  692. position: relative;
  693. padding-right: 30upx;
  694. }
  695. .action-btn {
  696. width: 160upx;
  697. height: 60upx;
  698. margin: 0;
  699. margin-left: 24upx;
  700. padding: 0;
  701. text-align: center;
  702. line-height: 60upx;
  703. font-size: $font-sm + 2upx;
  704. background: #fff;
  705. border-radius: 100px;
  706. &:after {
  707. border-radius: 100px;
  708. }
  709. &.recom {
  710. background: #fff9f9;
  711. border-width: 1rpx;
  712. border-style: solid;
  713. }
  714. }
  715. .ts-left {
  716. margin-top: 16rpx;
  717. margin-left: 20rpx;
  718. }
  719. .total-share .ts-h,
  720. .ts-f {
  721. width: 472rpx;
  722. }
  723. .ts-f {
  724. margin-top: -14rpx;
  725. }
  726. .total-share .ts-h {
  727. height: 70rpx;
  728. display: flex;
  729. justify-content: flex-start;
  730. align-items: center;
  731. margin-bottom: 50rpx;
  732. margin-top: 10rpx;
  733. }
  734. .total-share .ts-h .ts-bg {
  735. width: 74rpx;
  736. height: 70rpx;
  737. display: flex;
  738. align-items: center;
  739. justify-content: center;
  740. font-size: 16rpx;
  741. background-size: 100%;
  742. margin-right: 16rpx;
  743. text-align: center;
  744. }
  745. .total-share .ts-h .all-p {
  746. font-size: 20rpx;
  747. font-family: PingFang SC;
  748. font-weight: 800;
  749. color: rgba(255, 255, 255, 1);
  750. letter-spacing: 6rpx;
  751. margin-left: 5rpx;
  752. margin-top: -8rpx;
  753. }
  754. .total-share .ts-h .expect {
  755. display: inline-block;
  756. width: 360rpx;
  757. overflow: hidden;
  758. text-overflow: ellipsis;
  759. -o-text-overflow: ellipsis;
  760. white-space: nowrap;
  761. font-size: 31rpx;
  762. font-family: PingFang SC;
  763. font-weight: bold;
  764. color: rgba(0, 0, 0, 1);
  765. }
  766. .ts-f {
  767. display: flex;
  768. justify-content: space-between;
  769. align-items: center;
  770. }
  771. .ts-f .red-pre {
  772. font-size: 52rpx;
  773. font-family: PingFang SC;
  774. font-weight: 800;
  775. color: rgba(255, 31, 31, 1);
  776. }
  777. .ts-f .num {
  778. position: relative;
  779. top: 14rpx;
  780. font-size: 30rpx;
  781. font-family: PingFang SC;
  782. font-weight: 800;
  783. color: rgba(0, 0, 0, 1);
  784. text-align: center;
  785. }
  786. .ts-f .sam {
  787. text-align: center;
  788. font-size: 26rpx;
  789. font-family: PingFang SC;
  790. font-weight: 500;
  791. color: rgba(102, 102, 102, 1);
  792. }
  793. .ts-f .sam.zi {
  794. margin-top: 24rpx;
  795. }
  796. .ts-right {
  797. margin-left: 10rpx;
  798. /*float: right;*/
  799. position: relative;
  800. margin-top: 40rpx;
  801. }
  802. .ts-right .abso {
  803. width: 140rpx;
  804. height: 140rpx;
  805. position: absolute;
  806. font-size: 24rpx;
  807. left: 46rpx;
  808. border-width: 4rpx;
  809. border-style: solid;
  810. border-radius: 50%;
  811. text-align: center;
  812. padding-top: 26rpx;
  813. box-sizing: border-box;
  814. image {
  815. width: 45rpx;
  816. height: 51rpx;
  817. }
  818. }
  819. .abso .yet {
  820. margin-left: 16rpx;
  821. width: 46rpx;
  822. height: 52rpx;
  823. }
  824. .abso .now {
  825. font-size: 26rpx;
  826. font-family: PingFang SC;
  827. font-weight: 800;
  828. }
  829. </style>