球星卡微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

807 lines
20 KiB

3 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
3 years ago
4 years ago
  1. <template>
  2. <view>
  3. <!-- tabs选项卡 -->
  4. <view class="lf-flex">
  5. <view style="width: 84%;">
  6. <u-tabs
  7. :current="tabIndex"
  8. :list="tabList"
  9. :lineWidth="34"
  10. :scrollable="false"
  11. :itemWidth="100 / tabList.length +'%'"
  12. lineColor="#E7A23F"
  13. @change="switchTab"
  14. >
  15. </u-tabs>
  16. </view>
  17. <view class="filter-icon">
  18. <image src="@/static/icon/filter.png" @click="showFilter = !showFilter"></image>
  19. </view>
  20. </view>
  21. <!-- 筛选 -->
  22. <view class="filter-box" v-if="showFilter">
  23. <view class="flex-col group_6" >
  24. <view class="flex-col section_5">
  25. <view class="flex-col">
  26. <text class="text_7">按收货确认时间</text>
  27. <view class="flex-col group_8">
  28. <view class="lf-flex lf-flex-wrap">
  29. <view class="filter-date-item" :class="{active: filterGather.date == item.value}" @click="selectReceivingTime(item)" v-for="(item, index) in receivingTimeList" :key="index">{{ item.label }}</view>
  30. </view>
  31. </view>
  32. </view>
  33. <view class="flex-col group_13">
  34. <text class="text_18">按送评信息</text>
  35. <view class="flex-col items-start text-wrapper_4">
  36. <u-input v-model="filterGather.name" placeholder="输入送评人姓名或手机号" class="text-wrapper_4-input"></u-input>
  37. </view>
  38. </view>
  39. <view class="flex-col group_13">
  40. <text class="text_18">按送评信息</text>
  41. <view class="flex-col items-start text-wrapper_4">
  42. <u-input v-model="filterGather.order_num" placeholder="输入评级编号" class="text-wrapper_4-input" ></u-input>
  43. </view>
  44. </view>
  45. <view class="flex-row group_14">
  46. <view class="flex-col items-center text-wrapper_5" @click="reset">
  47. <text>重置</text>
  48. </view>
  49. <view class="flex-col items-center text-wrapper_6" @click="confirm">
  50. <text>确认</text>
  51. </view>
  52. </view>
  53. </view>
  54. <view class="flex-col items-center group_15" @click="showFilter = false">
  55. <view class="section_7"> </view>
  56. </view>
  57. </view>
  58. </view>
  59. <!-- 页面主体滚动区域 -->
  60. <swiper :current="tabIndex" :style="{height: swiperContentHeight}" @change="swiperChange">
  61. <swiper-item v-for="(tabItem, idx) in tabList" :key="idx" :item-id="tabItem.ident">
  62. <scroll-view
  63. :style="{height: swiperContentHeight, 'padding-top': '30rpx'}"
  64. :scroll-y="true"
  65. :refresher-enabled="true"
  66. :refresher-triggered="tabItem.isRefresher"
  67. @scrolltolower="scrolltolower"
  68. @refresherrefresh="refresherrefresh"
  69. >
  70. <view class="item-box" v-for="(item, index) in tabItem.data" :key="index" @click="$url('/packages/sonpingDetail/sonpingDetail?id='+ item.id)">
  71. <view class="flex-col section_5">
  72. <view class="justify-between">
  73. <view class="flex-row group_8">
  74. <image :src="showOrderStatusIcon(item.status)" class="image_7" />
  75. <text class="text_7">{{ ['在线送评','确认收货','定价','发货','已确认'][item.status-1] }}</text>
  76. </view>
  77. <text class="text_8" :style="{color: item.status_text_color}">{{ item.status_text }}</text>
  78. </view>
  79. <view class="justify-between group_9">
  80. <view class="flex-row">
  81. <text>{{ item.owner }}</text>
  82. <text class="text_10">{{ item.tel }}</text>
  83. </view>
  84. <text>{{ item.num }}</text>
  85. </view>
  86. <view class="justify-between group_11">
  87. <!-- <text class="text_12">更多</text> -->
  88. <text class="text_12"></text>
  89. <view class="flex-row" v-if="item.status == 1">
  90. <view class="flex-col items-center text-wrapper" @click.stop="orderCancel(item)">
  91. <text>取消</text>
  92. </view>
  93. <view v-if="!item.express_numb && !item.express_type" class="flex-col items-center text-wrapper_1" @click.stop="orderSend(item)">
  94. <text>寄送藏品</text>
  95. </view>
  96. </view>
  97. <view class="flex-row" v-else-if="item.status == 2">
  98. <view class="flex-col items-center text-wrapper" @click.stop="clickIndex = index, $url('/packages/address/address?is_select=1')">
  99. <text>更改地址</text>
  100. </view>
  101. </view>
  102. <view class="flex-row" v-else-if="item.status == 3 && item.grading_finish == 1">
  103. <view class="flex-col items-center text-wrapper_1" style="border-color: #EA2B2B; color: #EA2B2B;" @click.stop="orderPay(item)">
  104. <text>付款</text>
  105. </view>
  106. </view>
  107. <view class="flex-row" v-else-if="item.status == 4">
  108. <view class="flex-col items-center text-wrapper_1" @click.stop="orderConfirm(item)">
  109. <text>确认收货</text>
  110. </view>
  111. </view>
  112. </view>
  113. </view>
  114. </view>
  115. <!-- 当前tab下没有数据且无分页数据时显示系统剪辑中 -->
  116. <view class="nomore-box" v-if="tabItem.data.length <= 0 && !tabItem.isPage">
  117. <image src="@/static/images/nomore.png"></image>
  118. <view>暂无订单记录</view>
  119. </view>
  120. <!-- 加载中和暂无更多显示 -->
  121. <u-loadmore :status="tabItem.status" margin-bottom="20" marginTop="20" v-else></u-loadmore>
  122. <!-- 底部修饰解决部分机型底部被挡住且padding和margin都不生效的BUG -->
  123. <view class="additional"></view>
  124. </scroll-view>
  125. </swiper-item>
  126. </swiper>
  127. <!-- 轻提示 -->
  128. <u-toast ref="uToast"></u-toast>
  129. </view>
  130. </template>
  131. <script>
  132. import { orderList, cancelOrder, confirmOrder, doPay, changOrderAddress } from '@/service/order.js';
  133. import orderStatus1 from '@/static/icon/order_status1.png';
  134. import orderStatus2 from '@/static/icon/order_status2.png';
  135. import orderStatus3 from '@/static/icon/order_status3.png';
  136. import orderStatus4 from '@/static/icon/order_status4.png';
  137. import orderStatus5 from '@/static/icon/order_status5.png';
  138. export default {
  139. data(){
  140. let publicKey = {
  141. page: 1,
  142. pageSize: 10,
  143. isPage: true,
  144. status: 'loading', // loading加载,nomore没有更多了
  145. isRefresher: false, // 下拉刷新状态,默认没有开启下拉
  146. }
  147. return {
  148. showFilter: false,
  149. tabList: [{
  150. name: '全部',
  151. ident: 'all',
  152. type: 0,
  153. data: [],
  154. badge: {isDot: false},
  155. requestFunction: 'getList',
  156. ...publicKey
  157. },{
  158. name: '待确认',
  159. ident: 'waitconfirm',
  160. type: 1,
  161. data: [],
  162. badge: {isDot: false},
  163. requestFunction: 'getList',
  164. ...publicKey
  165. },{
  166. name: '评级中',
  167. ident: 'gradeing',
  168. type: 2,
  169. data: [],
  170. badge: {isDot: false},
  171. requestFunction: 'getList',
  172. ...publicKey
  173. },{
  174. name: '待付款',
  175. ident: 'waitpay',
  176. type: 3,
  177. data: [],
  178. badge: {isDot: false},
  179. requestFunction: 'getList',
  180. ...publicKey
  181. },{
  182. name: '待收货',
  183. ident: 'waitreceiv',
  184. type: 4,
  185. data: [],
  186. badge: {isDot: false},
  187. requestFunction: 'getList',
  188. ...publicKey
  189. }],
  190. tabIndex: 0,
  191. receivingTimeList: [{
  192. label: '1个月内',
  193. value: '1'
  194. },{
  195. label: '3个月内',
  196. value: '2'
  197. },{
  198. label: '6个月内',
  199. value: '3'
  200. },{
  201. label: '今年',
  202. value: '4'
  203. },{
  204. label: '2021年',
  205. value: '5'
  206. },{
  207. label: '2020年',
  208. value: '6'
  209. },{
  210. label: '2019年',
  211. value: '7'
  212. }],
  213. filterGather: {
  214. date: '',
  215. name: '',
  216. label: '',
  217. order_num: ''
  218. },
  219. clickButton: false,
  220. address: {},
  221. clickIndex: 0
  222. }
  223. },
  224. computed: {
  225. // 传入对应tab的ident值,在当前tabIndex下是否匹配,匹配上返回true,否则返回false,调用matchTabIdent(par1, par2, ...)
  226. matchTabIdent(){
  227. let that = this;
  228. return function(){
  229. let identList = Array.from(arguments);
  230. let hasKey = identList.some(item => that.tabList[that.tabIndex].ident === item);
  231. return hasKey;
  232. }
  233. },
  234. // 计算获得swiper内容区域剩余高度
  235. swiperContentHeight(){
  236. return `calc(100vh - 80rpx - 10rpx)`;
  237. },
  238. showOrderStatusIcon(){
  239. return function(status){
  240. return [orderStatus1, orderStatus2, orderStatus3, orderStatus4, orderStatus5][status-1]
  241. }
  242. }
  243. },
  244. watch: {
  245. address(){
  246. this.orderAddressChange();
  247. }
  248. },
  249. onLoad(options){
  250. this.tabIndex = Number(options.current || this.tabIndex);
  251. this[ this.tabList[this.tabIndex].requestFunction ](); // 获取当前tab下的数据列表
  252. },
  253. methods: {
  254. // 获取数据
  255. getList(options = {}){
  256. let tabItem = this.tabList[this.tabIndex];
  257. let filterGather = this.filterGather;
  258. let data = {
  259. type: tabItem.type,
  260. page: tabItem.page,
  261. pageSize: tabItem.pageSize
  262. };
  263. if(filterGather.date){
  264. data.confirm_type = filterGather.date;
  265. }
  266. if(filterGather.name){
  267. data.name_phone = filterGather.name;
  268. }
  269. if(filterGather.label){
  270. data.label = filterGather.label;
  271. }
  272. if(filterGather.order_num){
  273. data.order_num = filterGather.order_num;
  274. }
  275. orderList(data).then(res => {
  276. let datas = res.data.datas;
  277. let isPage = this.$isRight(datas.next_page_url);
  278. if(!isPage){
  279. tabItem.isPage = isPage;
  280. tabItem.status = 'nomore';
  281. }
  282. if(tabItem.page == 1){
  283. tabItem.data = datas.data;
  284. }else{
  285. tabItem.data.push(...datas.data);
  286. }
  287. if(options.refresher){
  288. this.$refs.uToast.show({
  289. message: '刷新成功',
  290. type: 'success'
  291. });
  292. tabItem.isRefresher = false;
  293. }
  294. })
  295. },
  296. // 筛选
  297. confirm(refresher){
  298. this.tabIndex = 0;
  299. let tabItem = this.tabList[this.tabIndex];
  300. tabItem.page = 1;
  301. tabItem.isPage = true;
  302. tabItem.status = 'loading';
  303. tabItem.data = [];
  304. if(refresher){
  305. this[tabItem.requestFunction]({refresher:true});
  306. }else{
  307. this[tabItem.requestFunction]();
  308. }
  309. this.showFilter = false;
  310. },
  311. // 重置筛选条件
  312. reset(){
  313. this.filterGather = this.$options.data().filterGather;
  314. this.$refs.uToast.show({
  315. message: '内容已重置',
  316. type: 'success'
  317. });
  318. },
  319. // 选择确认收货时间
  320. selectReceivingTime(item){
  321. if(this.filterGather.date == item.value){
  322. this.filterGather.date = "";
  323. }else{
  324. this.filterGather.date = item.value;
  325. }
  326. },
  327. // 取消订单
  328. orderCancel(item){
  329. uni.showModal({
  330. title: '提示',
  331. content: '真要取消该订单吗?',
  332. success: async result => {
  333. if(result.confirm){
  334. await cancelOrder(item.order_id);
  335. this.$refs.uToast.show({
  336. message: '取消成功',
  337. type: 'success'
  338. });
  339. this.confirm();
  340. }
  341. }
  342. })
  343. },
  344. // 寄送藏品
  345. orderSend(item){
  346. let base_data = encodeURIComponent(JSON.stringify(item));
  347. this.$url('/pages/write/distribution?base_data='+ base_data);
  348. },
  349. // 更改地址
  350. async orderAddressChange(){
  351. let order_id = this.tabList[this.tabIndex].data[this.clickIndex].order_id;
  352. await changOrderAddress({order_id: order_id, addr_id: this.address.id});
  353. this.$refs.uToast.show({
  354. message: '地址修改成功',
  355. type: 'success'
  356. });
  357. },
  358. // 订单付款
  359. orderPay(item){
  360. if(this.clickButton) return;
  361. this.clickButton = true;
  362. doPay(item.order_id).then(res => {
  363. console.log("----------------", res);
  364. let datas = res.data.datas;
  365. uni.requestPayment({
  366. provider: 'wxpay',
  367. timeStamp: datas.timeStamp,
  368. nonceStr: datas.nonceStr,
  369. package: datas.package,
  370. signType: datas.signType,
  371. paySign: datas.paySign,
  372. success: res => {
  373. this.clickButton = false;
  374. this.$refs.uToast.show({
  375. message: '支付成功',
  376. type: 'success'
  377. });
  378. this.confirm(true);
  379. setTimeout(()=>{
  380. let tabIndex = 3;
  381. let tabItem = this.tabList[tabIndex];
  382. tabItem.page = 1;
  383. tabItem.isPage = true;
  384. tabItem.status = 'loading';
  385. tabItem.data = [];
  386. this[tabItem.requestFunction]({refresher:true});
  387. this.showFilter = false;
  388. },500)
  389. //this.confirm();
  390. },
  391. fail: err => {
  392. uni.showModal({
  393. title: '提示',
  394. content: '已取消订单,请及时支付',
  395. showCancel: false
  396. })
  397. this.clickButton = false;
  398. }
  399. })
  400. }).catch(err => this.clickButton = false)
  401. },
  402. // 确认收货
  403. async orderConfirm(item){
  404. uni.showModal({
  405. title:"确认收货",
  406. content:'确认收到货物并签收?',
  407. success:async (e) => {
  408. if(e.confirm){
  409. await confirmOrder(item.id);
  410. this.$refs.uToast.show({
  411. message: '确认收货成功',
  412. type: 'success'
  413. });
  414. this.confirm();
  415. }
  416. }
  417. });
  418. },
  419. // 切换tab
  420. switchTab(item){
  421. this.tabIndex = item.index;
  422. // 判断所切换到的tab下是否有数据并且isPage为true,如果没有再请求,否则啥也不干
  423. let tabItem = this.tabList[this.tabIndex];
  424. if(tabItem.data.length === 0 && tabItem.isPage){
  425. this[ tabItem.requestFunction ]();
  426. }
  427. },
  428. // swiper滑动响应事件
  429. swiperChange(event){
  430. // 事件触发类型为触摸时才做处理,否则是因为switchTab方法执行导致的事件回调
  431. if(event.detail.source === 'touch'){
  432. this.tabIndex = event.detail.current;
  433. // 判断所切换到的tab下是否有数据并且isPage为true,如果没有再请求,否则啥也不干
  434. let tabItem = this.tabList[this.tabIndex];
  435. if(tabItem.data.length === 0 && tabItem.isPage){
  436. this[ tabItem.requestFunction ]();
  437. }
  438. }
  439. },
  440. // 下拉刷新,重新获取页面数据,将状态置回初始值再请求
  441. refresherrefresh(){
  442. let tabItem = this.tabList[this.tabIndex];
  443. tabItem.isRefresher = true;
  444. tabItem.page = 1;
  445. tabItem.isPage = true;
  446. tabItem.status = 'loading';
  447. tabItem.data = [];
  448. this[tabItem.requestFunction]({refresher: true});
  449. },
  450. // 滚动到底部
  451. scrolltolower(){
  452. let tabItem = this.tabList[this.tabIndex];
  453. if(tabItem.isPage){
  454. tabItem.page++;
  455. this[tabItem.requestFunction]();
  456. }
  457. }
  458. }
  459. }
  460. </script>
  461. <style>
  462. /* 修复ios页面左右漂浮BUG */
  463. page{
  464. overflow: hidden;
  465. }
  466. </style>
  467. <style scoped lang="scss">
  468. .filter-icon{
  469. width: 16%;
  470. height: 34rpx;
  471. display: flex;
  472. justify-content: center;
  473. align-items: center;
  474. border-left: 2rpx solid #F6F6F6;
  475. image{
  476. width: 36rpx;
  477. height: 32rpx;
  478. }
  479. }
  480. .filter-box{
  481. position: absolute;
  482. z-index: 9999;
  483. width: 750rpx;
  484. .text-wrapper_1 {
  485. margin-left: 16rpx;
  486. flex: 1 1 160rpx;
  487. color: rgb(51, 51, 51);
  488. font-size: 28rpx;
  489. font-weight: 500;
  490. line-height: 40rpx;
  491. white-space: nowrap;
  492. padding: 14rpx 0;
  493. background-color: rgb(246, 246, 246);
  494. border-radius: 10rpx;
  495. height: 68rpx;
  496. }
  497. .left-text-wrapper {
  498. padding: 14rpx 0;
  499. background-color: rgb(246, 246, 246);
  500. border-radius: 10rpx;
  501. width: 160rpx;
  502. height: 68rpx;
  503. }
  504. .group_6 {
  505. padding-top: 2rpx;
  506. }
  507. .section_5 {
  508. padding: 40rpx 32rpx 50rpx;
  509. background-color: rgb(255, 255, 255);
  510. }
  511. .group_15 {
  512. padding: 506rpx 0 16rpx;
  513. position: relative;
  514. }
  515. .group_11 {
  516. margin-top: 50rpx;
  517. }
  518. .group_13 {
  519. margin-top: 50rpx;
  520. }
  521. .group_14 {
  522. margin-top: 50rpx;
  523. }
  524. .section_7 {
  525. background-color: rgba(0, 0, 0, 0.5);
  526. width: 750rpx;
  527. height: 528rpx;
  528. top: 0;
  529. right: 0;
  530. bottom: 0;
  531. left: 0;
  532. position: absolute;
  533. }
  534. .text_7 {
  535. color: rgb(51, 51, 51);
  536. font-size: 32rpx;
  537. font-weight: 500;
  538. line-height: 44rpx;
  539. white-space: nowrap;
  540. }
  541. .group_8 {
  542. margin-top: 20rpx;
  543. }
  544. .text_15 {
  545. color: rgb(51, 51, 51);
  546. font-size: 32rpx;
  547. font-weight: 500;
  548. line-height: 44rpx;
  549. white-space: nowrap;
  550. }
  551. .group_12 {
  552. margin-top: 20rpx;
  553. color: rgb(195, 195, 195);
  554. font-size: 28rpx;
  555. font-weight: 500;
  556. line-height: 40rpx;
  557. white-space: nowrap;
  558. }
  559. .text_18 {
  560. color: rgb(51, 51, 51);
  561. font-size: 32rpx;
  562. font-weight: 500;
  563. line-height: 44rpx;
  564. white-space: nowrap;
  565. }
  566. .text-wrapper_4 {
  567. margin-top: 18rpx;
  568. // padding: 12rpx 0;
  569. color: rgb(195, 195, 195);
  570. font-size: 28rpx;
  571. font-weight: 500;
  572. line-height: 40rpx;
  573. white-space: nowrap;
  574. border-radius: 10rpx;
  575. border: solid 2rpx rgb(195, 195, 195);
  576. /deep/.u-input{
  577. width: 100%;
  578. }
  579. }
  580. .text-wrapper_5 {
  581. padding: 24rpx 0;
  582. flex: 1 1 330rpx;
  583. color: rgb(195, 195, 195);
  584. font-size: 32rpx;
  585. font-weight: 600;
  586. line-height: 44rpx;
  587. white-space: nowrap;
  588. border-radius: 10rpx;
  589. height: 96rpx;
  590. border: solid 2rpx rgb(195, 195, 195);
  591. }
  592. .text-wrapper_6 {
  593. margin-left: 26rpx;
  594. padding: 26rpx 0;
  595. flex: 1 1 330rpx;
  596. color: rgb(255, 255, 255);
  597. font-size: 32rpx;
  598. font-weight: 600;
  599. line-height: 44rpx;
  600. white-space: nowrap;
  601. background-color: rgb(231, 162, 63);
  602. border-radius: 10rpx;
  603. height: 96rpx;
  604. }
  605. .group_10 {
  606. margin-top: 20rpx;
  607. color: rgb(51, 51, 51);
  608. font-size: 28rpx;
  609. font-weight: 500;
  610. line-height: 40rpx;
  611. white-space: nowrap;
  612. }
  613. .text-wrapper_2 {
  614. // padding: 12rpx 0;
  615. flex: 1 1 auto;
  616. border-radius: 10rpx;
  617. height: 68rpx;
  618. border: solid 2rpx rgb(195, 195, 195);
  619. }
  620. .text-wrapper_3 {
  621. margin-left: 28rpx;
  622. // padding: 12rpx 0;
  623. border-radius: 10rpx;
  624. width: 308rpx;
  625. height: 68rpx;
  626. border: solid 2rpx rgb(195, 195, 195);
  627. }
  628. .text_19 {
  629. margin-left: 18rpx;
  630. }
  631. .text-wrapper {
  632. padding: 14rpx 0;
  633. flex: 1 1 160rpx;
  634. color: rgb(255, 255, 255);
  635. font-size: 28rpx;
  636. font-weight: 500;
  637. line-height: 40rpx;
  638. white-space: nowrap;
  639. background-color: rgb(231, 162, 63);
  640. border-radius: 10rpx;
  641. height: 68rpx;
  642. }
  643. .view_3 {
  644. margin-left: 14rpx;
  645. }
  646. .view_6 {
  647. margin-left: 16rpx;
  648. }
  649. .view_7 {
  650. margin-left: 14rpx;
  651. }
  652. .text_17 {
  653. margin-left: 18rpx;
  654. }
  655. }
  656. .item-box{
  657. width: 686rpx;
  658. // height: 300rpx;
  659. margin: 0 auto;
  660. background-color: #f6f6f6;
  661. &:nth-child(n+2){
  662. margin-top: 20rpx;
  663. }
  664. .section_5 {
  665. padding: 40rpx 32rpx 0;
  666. background-color: rgb(255, 255, 255);
  667. }
  668. .group_9 {
  669. margin-top: 30rpx;
  670. color: rgb(51, 51, 51);
  671. font-size: 32rpx;
  672. font-weight: 500;
  673. line-height: 44rpx;
  674. white-space: nowrap;
  675. }
  676. .group_11 {
  677. margin-top: 26rpx;
  678. padding: 32rpx 0 28rpx;
  679. border-top: solid 2rpx rgb(239, 239, 239);
  680. }
  681. .group_8 {
  682. color: rgb(153, 153, 153);
  683. font-size: 28rpx;
  684. line-height: 40rpx;
  685. white-space: nowrap;
  686. }
  687. .text_8 {
  688. color: rgb(43, 102, 234);
  689. font-size: 28rpx;
  690. font-weight: 500;
  691. line-height: 40rpx;
  692. white-space: nowrap;
  693. }
  694. .text_12 {
  695. align-self: center;
  696. color: rgb(153, 153, 153);
  697. font-size: 28rpx;
  698. line-height: 40rpx;
  699. white-space: nowrap;
  700. }
  701. .image_7 {
  702. width: 40rpx;
  703. height: 40rpx;
  704. }
  705. .text_7 {
  706. margin-left: 12rpx;
  707. }
  708. .text_10 {
  709. margin-left: 21rpx;
  710. }
  711. .text-wrapper {
  712. padding: 10rpx 0;
  713. color: rgb(153, 153, 153);
  714. font-size: 28rpx;
  715. font-weight: 500;
  716. line-height: 40rpx;
  717. white-space: nowrap;
  718. border-radius: 32rpx;
  719. width: 160rpx;
  720. height: 64rpx;
  721. border: solid 2rpx rgb(153, 153, 153);
  722. }
  723. .text-wrapper_1 {
  724. margin-left: 18rpx;
  725. padding: 10rpx 0;
  726. color: rgb(231, 162, 63);
  727. font-size: 28rpx;
  728. font-weight: 500;
  729. line-height: 40rpx;
  730. white-space: nowrap;
  731. border-radius: 32rpx;
  732. width: 160rpx;
  733. height: 64rpx;
  734. border: solid 2rpx rgb(231, 162, 63);
  735. }
  736. }
  737. .nomore-box{
  738. width: 686rpx;
  739. height: 500rpx;
  740. margin: 0 auto;
  741. display: flex;
  742. flex-direction: column;
  743. justify-content: center;
  744. align-items: center;
  745. image{
  746. width: 434rpx;
  747. height: 260rpx;
  748. }
  749. view{
  750. text-align: center;
  751. color: #777777;
  752. margin-top: 40rpx;
  753. }
  754. }
  755. // 解决scroll-view底部padding和margin都不生效贴边的BUG
  756. .additional{
  757. height: calc( env(safe-area-inset-bottom) + 20rpx );
  758. height: calc( constant(safe-area-inset-bottom) + 20rpx );
  759. }
  760. .filter-date-item{
  761. width: 160rpx;
  762. height: 68rpx;
  763. background: #F6F6F6;
  764. border-radius: 10rpx;
  765. font-size: 28rpx;
  766. color: #333333;
  767. margin-right: 16rpx;
  768. display: flex;
  769. justify-content: center;
  770. align-items: center;
  771. &:nth-child(4n){
  772. margin-right: 0rpx;
  773. }
  774. &:nth-child(n+5){
  775. margin-top: 16rpx;
  776. }
  777. &.active{
  778. color: #FFFFFF;
  779. background-color: #E7A23F;
  780. }
  781. }
  782. </style>