index.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732
  1. <template>
  2. <view>
  3. <view class="order-index">
  4. <view class="topBox">
  5. <view class="header acea-row">
  6. <view class="items">
  7. <image :src="user.avatar" mode=""></image>
  8. <span class="font">{{user.staff_name}}</span><span>({{manager == 0?'店员':'店长'}})</span>
  9. </view>
  10. <view class="item">
  11. <!-- <view class="iconfont icon-saoma" @click="scanCode"></view> -->
  12. <!-- #ifdef MP || MP-WEIXIN || APP -->
  13. <view class="iconfont icon-saoma" @click="scanCode">
  14. </view>
  15. <!-- #endif -->
  16. <!-- #ifdef H5 -->
  17. <view v-if="isWeixin" class="iconfont icon-saoma" @click="scanCode"></view>
  18. <!-- #endif -->
  19. </view>
  20. </view>
  21. <view class="topstatus acea-row" v-if="is_manager == 1 || user.order_status == 1">
  22. <navigator url="/pages/admin/store/order/index?type=0" hover-class="none">
  23. <view class="title">{{orderlist.unpaid_count}}</view>
  24. <view>待付款</view>
  25. </navigator>
  26. <navigator url="/pages/admin/store/order/index?type=1" hover-class="none">
  27. <view class="title">{{orderlist.unshipped_count}}</view>
  28. <view>待配送</view>
  29. </navigator>
  30. <navigator url="/pages/admin/store/order/index?type=5" hover-class="none">
  31. <view class="title">{{orderlist.unwriteoff_count}}</view>
  32. <view>待核销</view>
  33. </navigator>
  34. <navigator url="/pages/admin/store/order/index?type=3" hover-class="none">
  35. <view class="title">{{orderlist.evaluated_count}}</view>
  36. <view>待评价</view>
  37. </navigator>
  38. <navigator url="/pages/admin/store/order/index?type=-3" hover-class="none">
  39. <view class="title">{{orderlist.refund_count}}</view>
  40. <view>退款</view>
  41. </navigator>
  42. </view>
  43. </view>
  44. <view class="wrapper">
  45. <view class="title">
  46. <view class="uni-list-cell-db" @click="hiddened">
  47. <picker @change="bindPickerChange" :range="array" @cancel="cancel" v-if="is_manager == 1">
  48. <span class="iconfont icon-shujutongji"></span>
  49. <label class="aa">{{array[index]}}</label>
  50. <text class='iconfont' :class='hidden==true?"icon-xiangxia":"icon-xiangshang"'></text>
  51. </picker>
  52. <view v-else><span class="iconfont icon-shujutongji"></span>数据统计</view>
  53. </view>
  54. <view class="tab">
  55. <view class="box" :class="detailtabs== 'today' ? 'on':''" @click="detailtab('today')">今日</view>
  56. <view class="box" :class="detailtabs== 'yesterday' ? 'on':''" @click="detailtab('yesterday')">昨日</view>
  57. <view class="box" :class="detailtabs== 'month' ? 'on':''" @click="detailtab('month')">本月</view>
  58. </view>
  59. </view>
  60. <view class="list acea-row">
  61. <navigator v-if="manager == 1" class="item" :url="`/pages/admin/store/statistics/index?type=1&time=${detailtabs}&manager=1`" hover-class="none">
  62. <view class="num">{{ census.send_price }}</view>
  63. <view>配送订单额</view>
  64. </navigator>
  65. <navigator v-if="manager == 1" class="item" :url="`/pages/admin/store/statistics/index?type=2&time=${detailtabs}&manager=1`" hover-class="none">
  66. <view class="num">{{ census.send_count }}</view>
  67. <view>配送订单数</view>
  68. </navigator>
  69. <navigator v-if="manager == 1" class="item" :url="`/pages/admin/store/statistics/index?type=3&time=${detailtabs}&manager=1`" hover-class="none">
  70. <view class="num">{{ census.refund_price }}</view>
  71. <view>退款订单额</view>
  72. </navigator>
  73. <navigator class="item" :url="`/pages/admin/store/statistics/index?type=4&time=${detailtabs}&manager=${manager}`" hover-class="none">
  74. <view class="num">{{ census.cashier_price }}</view>
  75. <view>收银订单额</view>
  76. </navigator>
  77. <navigator class="item" :url="`/pages/admin/store/statistics/index?type=5&time=${detailtabs}&manager=${manager}`" hover-class="none">
  78. <view class="num">{{ census.writeoff_price }}</view>
  79. <view>核销订单额</view>
  80. </navigator>
  81. <navigator class="item" :url="`/pages/admin/store/statistics/index?type=6&time=${detailtabs}&manager=${manager}`" hover-class="none">
  82. <view class="num">{{ census.svip_price }}</view>
  83. <view>付费会员额</view>
  84. </navigator>
  85. <navigator class="item" :url="`/pages/admin/store/statistics/index?type=7&time=${detailtabs}&manager=${manager}`" hover-class="none">
  86. <view class="num">{{ census.recharge_price }}</view>
  87. <view>充值订单额</view>
  88. </navigator>
  89. <navigator class="item" :url="`/pages/admin/store/statistics/index?type=8&time=${detailtabs}&manager=${manager}`" hover-class="none">
  90. <view class="num">{{ census.spread_count }}</view>
  91. <view>推广用户数</view>
  92. </navigator>
  93. <navigator class="item" :url="`/pages/admin/store/statistics/index?type=9&time=${detailtabs}&manager=${manager}`" hover-class="none">
  94. <view class="num">{{ census.card_count }}</view>
  95. <view>激活会员卡</view>
  96. </navigator>
  97. </view>
  98. </view>
  99. <view class="public-wrapper">
  100. <view class="title">
  101. <view class="uni-list-cell-db" @click="hiddened">
  102. <span class="iconfont icon-xiangxishuju"></span>详细数据
  103. </view>
  104. <view class="tab">
  105. <view v-if="manager == 1" class="box" :class="tabs== 1 ? 'on':''" @click="tab(1)">配送</view>
  106. <view class="box" :class="tabs== 2 ? 'on':''" @click="tab(2)">收银</view>
  107. <view class="box" :class="tabs== 3 ? 'on':''" @click="tab(3)">核销</view>
  108. <view class="box" :class="tabs== 4 ? 'on':''" @click="tab(4)">充值</view>
  109. </view>
  110. </view>
  111. <view class="nav acea-row row-between-wrapper">
  112. <view class="data">日期</view>
  113. <view class="browse">订单数</view>
  114. <view class="turnover">金额</view>
  115. </view>
  116. <Loading :loaded="loaded" :loading="loading"></Loading>
  117. <view v-if="list.length" class="conter">
  118. <view class="item acea-row row-between-wrapper" v-for="(item, index) in list" :key="index">
  119. <view class="data">{{ item.time }}</view>
  120. <view class="browse">{{ item.count }}</view>
  121. <view class="turnover">{{ item.price }}</view>
  122. </view>
  123. </view>
  124. <view v-else class="unconter">
  125. <view v-if="!loading">暂无数据</view>
  126. </view>
  127. </view>
  128. </view>
  129. <home v-if="navigation"></home>
  130. <view v-if="iShidden">
  131. <view class="cardEntry acea-row row-center-wrapper">
  132. <view class="writeOff">
  133. <view class="pictrue">
  134. <image :src="writeData.image"></image>
  135. </view>
  136. <view class="conter">
  137. <view class="info">
  138. 核销信息:
  139. <text class="totalNum">
  140. <text class="num">{{writeData.write_off}}</text>/{{writeData.write_times}}
  141. </text>
  142. </view>
  143. <view class="center acea-row row-between-wrapper">
  144. <view class="title">本次核销</view>
  145. <view class='carnum acea-row row-center-wrapper'>
  146. <view class="reduce" :class="writeNum==writeData.write_off?'on':''" @click.stop='subCart'>-</view>
  147. <view class='num'>{{writeNum}}</view>
  148. <view class="plus" :class="writeNum==writeData.write_times?'on':''" @click.stop='addCart'>+</view>
  149. </view>
  150. </view>
  151. <view class="bottom acea-row row-between-wrapper">
  152. <view class="bnt acea-row row-center-wrapper" @click="cancelVerify">取消</view>
  153. <view class="bnt on acea-row row-center-wrapper" @click="confirmVerify">确认核销</view>
  154. </view>
  155. </view>
  156. </view>
  157. </view>
  158. <view class="mask"></view>
  159. </view>
  160. </view>
  161. </template>
  162. <script>
  163. import home from '@/components/home';
  164. import colors from '@/mixins/color.js';
  165. import {
  166. // getStatisticsInfo,
  167. // getStatisticsMonth,
  168. userInfo,
  169. orderInfo,
  170. statisticsMenuApi,
  171. getListApi,
  172. orderWriteoffInfo,
  173. orderWriteoff
  174. } from "@/api/admin";
  175. import Loading from '@/components/Loading/index.vue'
  176. export default {
  177. name: 'adminOrder',
  178. components: {
  179. Loading,
  180. home
  181. },
  182. mixins:[colors],
  183. data() {
  184. return {
  185. writeNum:1,
  186. writeData:{},
  187. iShidden: false,
  188. is_manager: 0,//判断首次进入是否为店长或店员
  189. manager: 0,//更改店长与店员的切换
  190. user: {},
  191. orderlist: {},
  192. hidden: true,
  193. page: 1,
  194. limit: 7,
  195. tip: 1,
  196. index: 0,
  197. detailtabs: 'today',
  198. array: ['门店统计', '数据统计'],
  199. tabs: 1,
  200. census: {},
  201. list: [],
  202. loaded: false,
  203. loading: false,
  204. verify_code: '',
  205. // #ifdef H5
  206. isWeixin: this.$wechat.isWeixin()
  207. // #endif
  208. }
  209. },
  210. onLoad() {
  211. this.userInfo()
  212. },
  213. methods: {
  214. subCart(){
  215. this.writeNum--;
  216. if(this.writeNum<1){
  217. this.writeNum = 1
  218. }
  219. },
  220. addCart(){
  221. this.writeNum++;
  222. let writeNo = parseInt(this.writeData.write_times) - parseInt(this.writeData.write_off);
  223. if(this.writeNum > writeNo){
  224. this.writeNum = writeNo
  225. }
  226. },
  227. cancelVerify(){
  228. this.iShidden = false
  229. },
  230. confirmVerify(){
  231. let newList = [];
  232. let obj = {
  233. cart_id:0,
  234. cart_num:0
  235. };
  236. obj.cart_id = this.writeData.cart_id[0];
  237. obj.cart_num = this.writeNum;
  238. newList.push(obj);
  239. orderWriteoff(1,{oid:this.writeData.id,cart_ids:newList}).then(res=>{
  240. this.iShidden = false
  241. this.$util.Tips({
  242. title: res.msg
  243. });
  244. }).catch(err=>{
  245. this.$util.Tips({
  246. title: err
  247. });
  248. })
  249. },
  250. // 用户信息
  251. userInfo: function() {
  252. userInfo().then(res=>{
  253. this.manager = res.data.is_manager
  254. this.is_manager = res.data.is_manager
  255. this.user = res.data
  256. if(res.data.is_manager == 0){
  257. this.tabs = 2
  258. }
  259. this.orderList()
  260. // this.getList()
  261. this.detailtab('today')
  262. })
  263. },
  264. // 订单统计
  265. orderList: function() {
  266. orderInfo({is_manager:this.manager}).then(res=>{
  267. this.orderlist = res.data
  268. })
  269. },
  270. // 统计菜单
  271. statisticsMenu: function(data) {
  272. statisticsMenuApi(data).then(res=>{
  273. this.census = res.data;
  274. })
  275. },
  276. // 详细数据列表
  277. getList: function() {
  278. let data ={
  279. type: this.tabs,
  280. is_manager : this.manager,
  281. page: this.page,
  282. limit: this.limit,
  283. data:this.detailtabs
  284. }
  285. // if (this.loading || this.loaded) return;
  286. this.loading = true;
  287. getListApi(data).then(res=>{
  288. this.loading = false
  289. // this.list.push(res.data);
  290. this.page += 1;
  291. this.list = this.list.concat(res.data);
  292. if(res.data.length < this.limit){
  293. this.tip = 2
  294. }
  295. })
  296. },
  297. hiddened: function(e) {
  298. this.hidden = !this.hidden;
  299. },
  300. cancel: function() {
  301. this.hidden = !this.hidden;
  302. },
  303. bindPickerChange: function(e) {
  304. this.tip = 1
  305. this.page = 1
  306. this.list = []
  307. this.hidden = !this.hidden;//改变的事件名
  308. this.index = e.target.value //将数组改变索引赋给定义的index变量
  309. let select = ''
  310. select=this.array[this.index] //将array【改变索引】的值赋给定义的jg变量
  311. if(select == '数据统计'){
  312. this.manager = 0
  313. this.tabs = 2
  314. this.detailtab('today')
  315. }
  316. if(select == '门店统计'){
  317. this.manager = 1
  318. this.tabs = 1
  319. this.detailtab('today')
  320. }
  321. this.orderList()
  322. },
  323. tab: function(type) {
  324. this.tip = 1
  325. this.tabs = type
  326. this.page = 1;
  327. this.list = []
  328. this.getList()
  329. },
  330. // 统计菜单
  331. detailtab: function(type) {
  332. this.detailtabs = type
  333. let data = {
  334. is_manager: this.manager,
  335. data: type
  336. }
  337. this.list = []
  338. this.page = 1;
  339. this.tip = 1
  340. this.getList()
  341. this.statisticsMenu(data)
  342. },
  343. scanCode() {
  344. var self = this;
  345. // #ifdef MP || APP
  346. uni.scanCode({
  347. scanType: ["qrCode", "barCode"],
  348. success(res) {
  349. console.log('res',res)
  350. self.verify_code = res.result
  351. self.codeChange();
  352. },
  353. fail(res) {},
  354. })
  355. // #endif
  356. //#ifdef H5
  357. this.$wechat.wechatEvevt('scanQRCode', {
  358. needResult: 1,
  359. scanType: ["qrCode", "barCode"]
  360. }).then(res => {
  361. let result = res.resultStr;
  362. if(result.includes(',')){
  363. result = result.split(",")[1]
  364. }
  365. this.verify_code = result
  366. this.codeChange();
  367. });
  368. //#endif
  369. },
  370. // 立即核销
  371. codeChange: function() {
  372. let self = this
  373. let ref = /^[0-9]*$/;
  374. if (!self.verify_code) return self.$util.Tips({
  375. title: '请输入核销码'
  376. });
  377. if (!ref.test(self.verify_code)) return self.$util.Tips({
  378. title: '请输入正确的核销码'
  379. });
  380. self.$util.Tips({
  381. title: '查询中'
  382. });
  383. setTimeout(() => {
  384. orderWriteoffInfo(1,{verify_code:self.verify_code,code_type:2}).then(res=>{
  385. if(res.status == 200){
  386. this.writeNum = 1;
  387. this.writeData = res.data[0];
  388. if(res.data[0].product_type !=4){
  389. uni.navigateTo({
  390. url:'./scanning/index?code='+self.verify_code
  391. })
  392. }else{
  393. self.iShidden = true
  394. }
  395. }else{
  396. self.$util.Tips({ title: res.msg });
  397. }
  398. }).catch(err=>{
  399. self.$util.Tips({
  400. title: err
  401. });
  402. })
  403. }, 800);
  404. },
  405. },
  406. onReachBottom(){
  407. if(this.tip == 1){
  408. this.getList()
  409. }
  410. }
  411. }
  412. </script>
  413. <style lang="scss" scoped>
  414. .cardEntry{
  415. position: fixed;
  416. top:50%;
  417. left:50%;
  418. margin-left: -280rpx;
  419. margin-top: -442rpx;
  420. z-index: 9;
  421. .writeOff{
  422. background-color: #fff;
  423. width: 560rpx;
  424. height: 885rpx;
  425. border-radius: 20rpx;
  426. .pictrue{
  427. width: 100%;
  428. height: 560rpx;
  429. border-radius: 20rpx 20rpx 0 0;
  430. image{
  431. width: 100%;
  432. height: 100%;
  433. border-radius: 20rpx 20rpx 0 0;
  434. }
  435. }
  436. .conter{
  437. padding: 30rpx 28rpx 54rpx 26rpx;
  438. .info{
  439. color: #333;
  440. font-size: 32rpx;
  441. .totalNum{
  442. color: #999;
  443. .num{
  444. color: #2291f8;
  445. }
  446. }
  447. }
  448. .center{
  449. margin-top: 30rpx;
  450. .title{
  451. color: #666;
  452. font-size: 32rpx;
  453. }
  454. .carnum{
  455. height: 44rpx;
  456. view{
  457. border: 1rpx solid #a4a4a4;
  458. width: 66rpx;
  459. text-align: center;
  460. height: 100%;
  461. line-height: 40rpx;
  462. font-size: 28rpx;
  463. color: #a4a4a4;
  464. }
  465. .reduce{
  466. border-right: 0;
  467. border-radius: 22rpx 0 0 22rpx;
  468. &.on{
  469. border-color: #e3e3e3;
  470. color: #dedede;
  471. }
  472. }
  473. .plus{
  474. border-left: 0;
  475. border-radius: 0 22rpx 22rpx 0;
  476. &.on{
  477. border-color: #e3e3e3;
  478. color: #dedede;
  479. }
  480. }
  481. .num{
  482. color: #282828;
  483. }
  484. }
  485. }
  486. .bottom{
  487. margin-top: 42rpx;
  488. .bnt{
  489. width: 240rpx;
  490. height: 82rpx;
  491. background: #F5F5F5;
  492. border-radius: 41rpx;
  493. color: #333;
  494. font-size: 32rpx;
  495. &.on{
  496. background-color: #2291f8;
  497. color: #fff;
  498. }
  499. }
  500. }
  501. }
  502. }
  503. }
  504. /*订单首页*/
  505. .order-index .topBox{
  506. padding-bottom: 40upx;
  507. // height: 360upx;
  508. background: linear-gradient(270deg, #4276F6 0%, #00ACF8 100%);
  509. }
  510. .order-index .header {
  511. box-sizing: border-box;
  512. display: flex;
  513. background-size: 100% 100%;
  514. width: 100%;
  515. // height: 120upx;
  516. padding: 0upx 30upx 0upx 30upx;
  517. justify-content: space-between;
  518. }
  519. .order-index .header .icon-saoma{
  520. font-size: 40rpx;
  521. padding: 30rpx 20rpx 30rpx 80rpx;
  522. }
  523. .order-index .header .item,.order-index .header .items {
  524. font-size: 24upx;
  525. color: #fff;
  526. height: 120upx;
  527. display: flex;
  528. align-items: center;
  529. }
  530. .order-index .header .item .font,.order-index .header .items .font{
  531. display: inline-block;
  532. margin-left: 16upx;
  533. margin-right: 16upx;
  534. font-size: 30upx;
  535. }
  536. .order-index .header .items image{
  537. width: 64upx;
  538. height: 64upx;
  539. border-radius: 60upx;
  540. border: 2upx solid #FFFFFF;
  541. }
  542. .order-index .topstatus{
  543. padding: 0upx 56upx 30upx;
  544. display: flex;
  545. justify-content: space-between;
  546. color: #FFFFFF;
  547. text-align: center;
  548. font-size: 24upx;
  549. font-weight: 400;
  550. box-sizing: border-box;
  551. // background: linear-gradient(270deg, #4276F6 0%, #00ACF8 100%);
  552. .title{
  553. font-size: 40upx;
  554. margin-bottom: 6upx;
  555. }
  556. }
  557. .order-index .wrapper {
  558. width: 690upx;
  559. background-color: #fff;
  560. border-radius: 10upx;
  561. margin: -46upx auto 0 auto;
  562. padding-top: 25upx;
  563. }
  564. .order-index .wrapper .title .iconfont {
  565. color: #2291f8;
  566. font-size: 40upx;
  567. margin-right: 13upx;
  568. vertical-align: middle;
  569. }
  570. .order-index .wrapper .title {
  571. font-size: 30upx;
  572. color: #282828;
  573. padding: 0 30upx;
  574. margin-bottom: 40upx;
  575. display: flex;
  576. justify-content: space-between;
  577. .uni-list-cell-db .iconfont{
  578. font-size: 24upx ;
  579. color: #999 ;
  580. margin-left: 14upx;
  581. }
  582. .tab{
  583. width: 240upx;
  584. height: 48upx;
  585. background: #F5F5F5;
  586. border-radius: 24upx;
  587. display: flex;
  588. justify-content: space-between;
  589. font-weight: 400;
  590. color: #999999;
  591. font-size: 24upx;
  592. .box{
  593. width: 82upx;
  594. height: 48upx;
  595. border-radius: 24upx;
  596. text-align: center;
  597. line-height: 48upx;
  598. }
  599. .on{
  600. background: #1890FF;
  601. color: #FFFFFF;
  602. }
  603. }
  604. }
  605. .order-index .wrapper .list .item {
  606. width: 33.33%;
  607. text-align: center;
  608. font-size: 24upx;
  609. color: #999;
  610. margin-bottom: 45upx;
  611. }
  612. .order-index .wrapper .list .item .num {
  613. font-size: 40upx;
  614. color: #333;
  615. }
  616. .public-wrapper .title {
  617. font-size: 30upx;
  618. color: #282828;
  619. padding: 0 30upx;
  620. margin-bottom: 20upx;
  621. font-size: 30upx;
  622. // margin-bottom: 40upx;
  623. display: flex;
  624. justify-content: space-between;
  625. .uni-list-cell-db .iconfont{
  626. font-size: 24upx ;
  627. color: #999 ;
  628. margin-left: 14upx;
  629. }
  630. .tab{
  631. // width: 240upx;
  632. height: 48upx;
  633. background: #F5F5F5;
  634. border-radius: 24upx;
  635. display: flex;
  636. justify-content: space-between;
  637. font-weight: 400;
  638. color: #999999;
  639. font-size: 24upx;
  640. .box{
  641. width: 82upx;
  642. height: 48upx;
  643. border-radius: 24upx;
  644. text-align: center;
  645. line-height: 48upx;
  646. }
  647. .on{
  648. background: #1890FF;
  649. color: #FFFFFF;
  650. }
  651. }
  652. }
  653. .public-wrapper .title .iconfont {
  654. color: #2291f8;
  655. font-size: 40upx;
  656. margin-right: 13upx;
  657. vertical-align: middle;
  658. }
  659. .public-wrapper {
  660. margin: 18upx auto 0 auto;
  661. width: 690upx;
  662. background-color: #fff;
  663. border-radius: 10upx;
  664. padding-top: 25upx;
  665. // padding-bottom: 25upx;
  666. }
  667. .public-wrapper .nav {
  668. padding: 0 30upx;
  669. height: 70upx;
  670. line-height: 70upx;
  671. font-size: 24upx;
  672. color: #999;
  673. }
  674. .public-wrapper .data {
  675. width: 33.33%;
  676. text-align: left;
  677. }
  678. .public-wrapper .browse {
  679. width: 33.33%;
  680. text-align: center;
  681. }
  682. .public-wrapper .turnover {
  683. width: 33.33%;
  684. text-align: right;
  685. }
  686. .public-wrapper .conter {
  687. padding: 0 30upx;
  688. margin-bottom: 40upx;
  689. }
  690. .public-wrapper .conter .item {
  691. border-bottom: 1px solid #f7f7f7;
  692. height: 70upx;
  693. font-size: 24upx;
  694. }
  695. .public-wrapper .conter .item .turnover {
  696. color: #000000;
  697. font-weight: 400;
  698. }
  699. .public-wrapper .unconter{
  700. text-align: center;
  701. color: #999;
  702. padding: 25upx;
  703. }
  704. </style>