incomeDetail.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775
  1. <template>
  2. <!-- 这是收益详情界面 -->
  3. <view class="info">
  4. <view class="selected" v-if="role=='技术管理员'">
  5. <view @click="select_merchants">
  6. <text>{{merchantList[merchantIndex]}}</text>
  7. <image src="../../static/img/right-arrow.png" mode=""></image>
  8. </view>
  9. <view @click="select_area">
  10. <text>{{areaList[areaIndex]}}</text>
  11. <image src="../../static/img/right-arrow.png" mode=""></image>
  12. </view>
  13. </view>
  14. <view class="date">
  15. <view style="width:70%;">
  16. <view class="flexA" @click="choice">
  17. <text>开始时间:{{timeShowS}}</text>
  18. <!-- <van-icon name="underway-o" /> -->
  19. </view>
  20. <view class="flexA" style="margin-top:20rpx;">
  21. <text>结束时间:{{timeShowE}}</text>
  22. <!-- <van-icon name="underway-o" /> -->
  23. </view>
  24. </view>
  25. <view class="dates">已查询{{list.days}}</view>
  26. </view>
  27. <view class="list">
  28. <view class="income">
  29. <view class="flexB title">
  30. <text>收入明细</text>
  31. <text class="state">总收入:{{list.totalProfit}}</text>
  32. </view>
  33. <view class="flex">
  34. <text>普通订单收入(含调度费):{{list.orderTotalProfit}}</text>
  35. </view>
  36. <view class="flex">
  37. <text>日租订单收入(含调度费):{{list.orderRentTotalProfit}}</text>
  38. </view>
  39. <view class="flex">
  40. <text style="width:50%;">订单调度费:{{list.orderDispatchTotalProfit}}</text>
  41. <text style="width:50%;">日租订单调度费:{{list.orderRentDispatchTotalProfit}}</text>
  42. </view>
  43. <view class="flex">
  44. <text>待支付订单:{{list.wiatPayTotal}}</text>
  45. </view>
  46. </view>
  47. <view class="income">
  48. <view class="flexB title">
  49. <text>用户明细</text>
  50. <text class="state">总用户:{{list.userTotal}}</text>
  51. </view>
  52. <view class="flexB small">
  53. <text>新增认证用户:{{list.userTotalCardOk}}</text>
  54. <text>总缴纳押金用户:{{list.userDepositTotal}}</text>
  55. </view>
  56. </view>
  57. <view class="income">
  58. <view class="flexB title">
  59. <text>押金明细</text>
  60. <text class="state">累计净押金:{{list.cumulativeDepositTotal}}</text>
  61. </view>
  62. <view class="flexB small">
  63. <text>新增押金:{{list.depositTotal}}</text>
  64. </view>
  65. </view>
  66. <view class="income">
  67. <view class="flexB title">
  68. <text>订单明细</text>
  69. <text class="state">总订单数:{{list.orderRentTotal+list.orderTotal}}</text>
  70. </view>
  71. <view class="flexB small">
  72. <text>普通订单:{{list.orderTotal}}</text>
  73. <text>待支付订单:{{list.wiatNum}}</text>
  74. </view>
  75. <view class="flex">
  76. <text>日租订单:{{list.orderRentTotal}}</text>
  77. </view>
  78. </view>
  79. <view class="income">
  80. <view class="flexB title">
  81. <text>活动明细</text>
  82. <text class="state">活动收益:{{list.activityTotalProfit}}</text>
  83. </view>
  84. <view class="flexB small">
  85. <text>充值订单收益:{{list.rechargeOrderTotalProfit}}</text>
  86. <text>免押金卡收益:{{list.depositCardTotalProfit}}</text>
  87. </view>
  88. <view class="flex">
  89. <text>骑行卡收益:{{list.riddingCardOrderTotalProfit}}</text>
  90. </view>
  91. </view>
  92. <view class="bike">
  93. <view>
  94. <text>投放车辆</text>
  95. <text>{{list.bikeTotal}}</text>
  96. </view>
  97. </view>
  98. </view>
  99. <view class="cover" v-if="showCal" @click="closeCal" catchtouchmove="true"></view>
  100. <view class="calendar" v-if="showCal">
  101. <view class="section">
  102. <view class="title flex-box">
  103. <view @click="past">
  104. <image src="../../static/img/zuo.png" mode="" style="width: 60upx;height: 60upx;"></image>
  105. </view>
  106. <view class="title">{{currentShow}}</view>
  107. <view @click="future">
  108. <image src="../../static/img/you.png" mode="" style="width: 60upx;height: 60upx;"></image>
  109. </view>
  110. </view>
  111. <view class="week flex-box">
  112. <view class="weekday" v-for="(item,index) in week" :key='index'>{{item}}</view>
  113. </view>
  114. <view class="days flex-box">
  115. <view class="day" @click="select(item.today)" v-for="(item,index1) in days" :key="index1">
  116. <view :class="item.today == today ? 'now' : (item.sign ? 'sign' : '')" class="circle">
  117. <view> {{item.day}} </view>
  118. </view>
  119. </view>
  120. </view>
  121. </view>
  122. </view>
  123. </view>
  124. </template>
  125. <script>
  126. var app = getApp()
  127. export default {
  128. data() {
  129. return {
  130. showCal: false,
  131. list: {},
  132. week: ['日', '一', '二', '三', '四', '五', '六'],
  133. days: [],
  134. today: '', //当天,展示星星标记
  135. currentShow: '', //展示日期
  136. currentDate: '', //点击选中日期
  137. changeTap: false,
  138. startRange: '',
  139. timeRange: [],
  140. timeStart: '',
  141. timeEnd: '',
  142. role: uni.getStorageSync('token').role, //是否是技术管理员
  143. merchantIndex: 0, //选择的商户下标
  144. merchant: [], //商户列表 数组对象
  145. merchantList: [], //商户列表只有name供选择,
  146. merchantId: '',
  147. areaIndex: 0, //选择的商户下标
  148. area: [], //商户列表 数组对象
  149. areaList: [], //商户列表只有name供选择,
  150. areaId: '',
  151. areaID: '' //页面传参过来的区域ID
  152. }
  153. },
  154. onLoad(options) {
  155. this.areaID = options.areaId
  156. this.getState();
  157. let day = this.getDay();
  158. this.today = day,
  159. this.currentDate = day
  160. this.calendar(day);
  161. console.log(this.role)
  162. if (this.role == '技术管理员') {
  163. app.request('order/merchantList', '', 'GET').then(res => {
  164. uni.hideLoading();
  165. console.log(res);
  166. if (res.statusCode == 200) {
  167. if (res.data.length > 1) {
  168. var obj = [{
  169. "id": '',
  170. "username": '',
  171. "name": "全部商户"
  172. }]
  173. var data = res.data
  174. obj = obj.concat(data)
  175. this.merchant = obj;
  176. var merchantArr = []
  177. for (var i = 0; i < this.merchant.length; i++) {
  178. console.log(this.merchant[i].name)
  179. merchantArr = merchantArr.concat(this.merchant[i].name)
  180. }
  181. console.log(merchantArr)
  182. this.merchantList = merchantArr;
  183. this.getArea()
  184. } else {
  185. this.merchant = res.data;
  186. var merchantArr = []
  187. merchantArr.push(this.merchant[0].name)
  188. this.merchantList = merchantArr;
  189. this.merchantId = this.merchant[0].id
  190. this.getArea()
  191. }
  192. }
  193. })
  194. }
  195. },
  196. methods: {
  197. getArea: function() {
  198. console.log(this.merchantId)
  199. app.request('order/areaList?merchant_id=' + this.merchantId, '', 'GET').then(res => {
  200. console.log(res);
  201. if (res.statusCode == 200) {
  202. if (res.data.length > 1) {
  203. var obj = [{
  204. "id": '',
  205. "username": '',
  206. "name": "全部区域"
  207. }]
  208. var data = res.data
  209. obj = obj.concat(data)
  210. this.area = obj;
  211. var areaArr = []
  212. for (var i = 0; i < this.area.length; i++) {
  213. console.log(this.area[i].name)
  214. areaArr = areaArr.concat(this.area[i].name)
  215. }
  216. console.log(areaArr)
  217. this.areaList = areaArr;
  218. this.areaId = '';
  219. } else {
  220. this.area = res.data;
  221. var areaArr = []
  222. areaArr.push(this.area[0].name)
  223. this.areaId = this.area[0].id;
  224. this.areaList = areaArr;
  225. console.log(this.area[0].name)
  226. console.log(this.areaList)
  227. }
  228. }
  229. })
  230. },
  231. select_merchants: function() {
  232. var that = this;
  233. uni.showActionSheet({
  234. itemList: that.merchantList,
  235. success: function(res) {
  236. that.merchantId = that.merchant[res.tapIndex].id
  237. that.getArea()
  238. that.merchantIndex = res.tapIndex
  239. that.areaIndex = 0
  240. setTimeout(function() {
  241. that.getState()
  242. }, 500)
  243. }
  244. })
  245. },
  246. select_area: function() {
  247. var that = this;
  248. uni.showActionSheet({
  249. itemList: that.areaList,
  250. success: function(res) {
  251. that.areaIndex = res.tapIndex
  252. that.areaId = that.area[res.tapIndex].id
  253. that.getState()
  254. }
  255. })
  256. },
  257. //获取今天
  258. getDay: function() {
  259. var today = new Date();
  260. var y = today.getFullYear();
  261. var m = today.getMonth();
  262. var d = today.getDate();
  263. //当月月份
  264. var todayMonth = today.getMonth() + 1;
  265. if (todayMonth < 10) {
  266. todayMonth = "0" + todayMonth;
  267. }
  268. var sendDay = y + "-" + todayMonth + '-' + d;
  269. return sendDay;
  270. },
  271. calendar: function(e) {
  272. console.log(e)
  273. var now = e.toString();
  274. now = now.split('-');
  275. console.log(now);
  276. let today = new Date(now[0], (now[1] - 1), now[2]);
  277. // console.log(today, 'today')
  278. let y = today.getFullYear();
  279. let m = today.getMonth();
  280. let d = today.getDate();
  281. console.log(y, m, d, 'ymd')
  282. //当月月份
  283. let todayMonth = today.getMonth() + 1;
  284. let day = d;
  285. console.log(d)
  286. if (todayMonth < 10) {
  287. todayMonth = "0" + todayMonth;
  288. }
  289. if (day < 10) {
  290. d = "0" + day;
  291. }
  292. //当月第一天是星期几
  293. let week = new Date(y, m, 1).getDay();
  294. console.log(week)
  295. //当月最后一天
  296. let lastDay = new Date(y, m + 1, 0).getDate();
  297. console.log(lastDay)
  298. //渲染日历
  299. let days = [];
  300. for (let i = 0; i < week; i++) {
  301. let obj = {
  302. id: i,
  303. day: '',
  304. today: '',
  305. sign: false
  306. };
  307. days.push(obj);
  308. }
  309. let timeRange = this.timeRange;
  310. let timeLen = timeRange.length;
  311. for (let j = 0; j < lastDay; j++) {
  312. let k = j + 1;
  313. if (k < 10) {
  314. k = '0' + k
  315. }
  316. let idx = j + week;
  317. //渲染每天日期状态
  318. let theDay = y + "-" + todayMonth + '-' + k;
  319. let show = false;
  320. let starts = false;
  321. let ends = false;
  322. for (let m = 0; m < timeLen; m++) {
  323. if (timeRange[m] == theDay) {
  324. show = true;
  325. //渲染 起 和 止 标记
  326. if (m == 0) {
  327. starts = true;
  328. }
  329. if (m == (timeLen - 1)) {
  330. ends = true;
  331. }
  332. }
  333. }
  334. //渲染每天日期
  335. let cell = {
  336. id: idx,
  337. day: k,
  338. today: theDay,
  339. sign: show,
  340. start: starts,
  341. end: ends
  342. };
  343. days.push(cell);
  344. }
  345. let currentShow = y + "年" + todayMonth + "月";
  346. this.days = days,
  347. this.currentDate = e,
  348. this.currentShow = currentShow
  349. },
  350. //调出日历
  351. choice: function() {
  352. this.showCal = true
  353. },
  354. //关闭日历
  355. closeCal: function() {
  356. this.showCal = false
  357. },
  358. //上个月
  359. past: function() {
  360. let last = this.currentDate;
  361. last = last.split('-');
  362. let today = new Date(last[0], (last[1] - 1), last[2]);
  363. let y = today.getFullYear();
  364. //取出月份不加 1 ,就等于上个月实际月份
  365. let m = today.getMonth();
  366. let d = 1;
  367. //如果当前 m 等于 0 当月为一月份,变成上一年的12月
  368. if (m < 1) {
  369. y = y - 1;
  370. m = 12;
  371. }
  372. if (m < 10) {
  373. m = '0' + m;
  374. }
  375. let day = y + '-' + m + '-' + d;
  376. console.log(day, 'day')
  377. this.calendar(day);
  378. },
  379. //下个月
  380. future: function() {
  381. let next = this.currentDate;
  382. next = next.split('-');
  383. // let today = new Date(this.data.currentDate);
  384. let today = new Date(next[0], (next[1] - 1), next[2]);
  385. let y = today.getFullYear();
  386. //取出当前月
  387. let m = today.getMonth();
  388. let d = 1;
  389. //十二月份变成下一年的 1 月
  390. if (m > 10) {
  391. y = y + 1;
  392. m = 1;
  393. } else {
  394. m = m + 2;
  395. }
  396. if (m < 10) {
  397. m = '0' + m;
  398. }
  399. let day = y + '-' + m + '-' + d;
  400. this.calendar(day);
  401. },
  402. //选择日期范围
  403. select(e) {
  404. console.log(e)
  405. let that = this;
  406. let day = e;
  407. let taps = this.changeTap;
  408. let startRange = this.startRange;
  409. //初始化 startRange,进入页面第一次点击触发
  410. if (startRange == '') {
  411. startRange = day;
  412. }
  413. console.log(startRange)
  414. let list = [];
  415. let paramR = day;
  416. let paramS = day;
  417. let paramE = day;
  418. let timeShowS = '';
  419. let timeShowE = '';
  420. if (taps && day) {
  421. //截止时间动作,先比较两个时间
  422. let dateS = new Date(startRange);
  423. let dateE = new Date(day);
  424. console.log(dateS.getTime())
  425. console.log(dateE.getTime())
  426. if (dateS.getTime() == dateE.getTime()) {
  427. list = [day];
  428. } else if (dateS.getTime() > dateE.getTime()) {
  429. list = that.datesList(day, startRange);
  430. paramE = startRange;
  431. } else if (dateS.getTime() < dateE.getTime()) {
  432. list = that.datesList(startRange, day);
  433. paramS = startRange;
  434. }
  435. console.log(list)
  436. that.showCal = false
  437. timeShowS = paramS;
  438. timeShowE = paramE;
  439. let data = {
  440. " pay_time_between[0]": timeShowS,
  441. " pay_time_between[1]": timeShowE,
  442. }
  443. wx.showLoading({
  444. title: '加载中...',
  445. })
  446. var url = ''
  447. if (that.role == '技术管理员') {
  448. url = "order/profitDetail?area_id=" + that.areaId + '&merchant_id=' + that.merchantId
  449. } else {
  450. url = "order/profitDetail?area_id=" + that.areaID
  451. }
  452. app.request(url, data, 'GET').then(res => {
  453. wx.hideLoading();
  454. console.log(res);
  455. if (res.statusCode == 200) {
  456. console.log(res)
  457. that.list = res.data
  458. }
  459. })
  460. } else if (!taps && day) {
  461. //开始时间动作
  462. list = [day];
  463. }
  464. console.log(list)
  465. that.changeTap = !taps;
  466. that.startRange = paramR;
  467. that.timeRange = list;
  468. that.timeStart = paramS;
  469. that.timeEnd = paramE;
  470. that.timeShowS = timeShowS;
  471. that.timeShowE = timeShowE;
  472. that.calendar(day);
  473. //console.log(list)
  474. },
  475. //选择日期范围,1选择日期
  476. getDates: function(datestr) {
  477. var temp = datestr.split("-");
  478. var m = parseInt(temp[1]) - 1;
  479. var date = new Date(temp[0], m, temp[2]);
  480. return date;
  481. },
  482. //选择日期范围,2生成日期范围内所有的日期列表
  483. datesList: function(s, e) {
  484. // let that = this;
  485. let arys = [];
  486. let start = s;
  487. let end = e;
  488. let startTime = this.getDates(start);
  489. let endTime = this.getDates(end);
  490. while ((endTime.getTime() - startTime.getTime()) >= 0) {
  491. console.log(startTime.getDate() < 10)
  492. let year = startTime.getFullYear();
  493. let monthA = startTime.getMonth() + 1;
  494. let month = monthA.toString() < 10 ? '0' + monthA.toString() : monthA.toString();
  495. let d = startTime.getDate() < 10 ? '0' + startTime.getDate() : startTime.getDate();
  496. let ds = year + "-" + month + "-" + d;
  497. arys.push(ds)
  498. startTime.setDate(startTime.getDate() + 1);
  499. }
  500. console.log(arys)
  501. return arys;
  502. },
  503. getState: function() {
  504. uni.showLoading({
  505. title: '加载中...',
  506. })
  507. let that = this;
  508. let day = new Date();
  509. day.setTime(day.getTime());
  510. let today = day.getFullYear() + "-" + (day.getMonth() + 1) + "-" + day.getDate();
  511. var day1 = new Date();
  512. day1.setTime(day1.getTime() + 24 * 60 * 60 * 1000);
  513. var tommorw = day1.getFullYear() + "-" + (day1.getMonth() + 1) + "-" + day1.getDate();
  514. this.timeShowS = today,
  515. this.timeShowE = tommorw
  516. console.log(this.timeShowS)
  517. console.log(this.timeShowE)
  518. let data = {
  519. " pay_time_between[0]": this.timeShowS,
  520. " pay_time_between[1]": this.timeShowE,
  521. }
  522. console.log(this.areaId)
  523. console.log(this.merchantId)
  524. var url = ''
  525. if (that.role == '技术管理员') {
  526. url = "order/profitDetail?area_id=" + that.areaId + '&merchant_id=' + that.merchantId
  527. } else {
  528. url = "order/profitDetail?area_id=" + that.areaID
  529. }
  530. app.request(url, data, 'GET').then(res => {
  531. console.log(res)
  532. uni.hideLoading();
  533. if (res.statusCode == 200) {
  534. this.list = res.data
  535. }
  536. })
  537. },
  538. }
  539. }
  540. </script>
  541. <style>
  542. /* pages/statistics/statistics.wxss */
  543. @import url("/static/css/base.css");
  544. page {
  545. background: #f4f4f4;
  546. }
  547. .date {
  548. width: 90%;
  549. margin: 20rpx auto;
  550. background: #fff;
  551. padding: 20rpx 10rpx;
  552. box-sizing: border-box;
  553. border-radius: 10rpx;
  554. position: relative;
  555. }
  556. .date text {
  557. font-size: 26rpx;
  558. }
  559. .dates {
  560. background: linear-gradient(-86deg, rgba(24, 213, 185, 1) 0%, rgba(89, 240, 202, 1) 100%);
  561. border-radius: 26rpx 0px 0px 26rpx;
  562. position: absolute;
  563. top: 0rpx;
  564. right: 0rpx;
  565. color: #fff;
  566. font-size: 26rpx;
  567. padding: 7rpx 20rpx;
  568. }
  569. .search {
  570. text-align: center;
  571. }
  572. .search text {
  573. font-size: 26rpx;
  574. color: #fff;
  575. background: #18d5b9;
  576. padding: 8rpx 20rpx;
  577. border-radius: 10rpx;
  578. }
  579. .list {
  580. margin: 20rpx auto;
  581. width: 90%;
  582. }
  583. .income,
  584. .bike {
  585. border: 1rpx solid #efefef;
  586. font-size: 28rpx;
  587. border-radius: 10rpx;
  588. padding: 20rpx;
  589. margin-top: 15rpx;
  590. background: #fff;
  591. position: relative;
  592. }
  593. .bike view {
  594. display: flex;
  595. justify-content: space-between;
  596. align-items: center;
  597. }
  598. .income .title text {
  599. font-size: 28rpx;
  600. margin-bottom: 20rpx;
  601. }
  602. .flex {
  603. display: flex;
  604. }
  605. .flex text,
  606. .small text {
  607. /* width: 50%; */
  608. font-size: 26rpx;
  609. margin-bottom: 10rpx;
  610. color: #808080;
  611. }
  612. /* 日历 */
  613. .calendar {
  614. color: #666;
  615. position: absolute;
  616. top: 50%;
  617. left: 50%;
  618. transform: translate(-50%, -50%);
  619. width: 90%;
  620. margin: 0 auto;
  621. z-index: 9999;
  622. border: 2rpx solid #38acff;
  623. -webkit-box-shadow: 0 0 10rpx #38acff;
  624. -moz-box-shadow: 0 0 10rpx #38acff;
  625. box-shadow: 0 0 10rpx #38acff;
  626. border-radius: 15rpx;
  627. box-sizing: border-box;
  628. padding: 20rpx 30rpx;
  629. background: #fff;
  630. }
  631. .title {
  632. padding: 20rpx 0;
  633. align-items: center;
  634. justify-content: space-between;
  635. }
  636. .week {
  637. padding: 20rpx 0;
  638. border-radius: 20rpx 20rpx 0 0;
  639. }
  640. .weekday {
  641. margin-right: 1%;
  642. width: 13.28%;
  643. text-align: center;
  644. }
  645. .days {
  646. padding: 10rpx 0;
  647. flex-wrap: wrap;
  648. }
  649. .day {
  650. position: relative;
  651. margin: 0;
  652. padding: 0;
  653. height: 90rpx;
  654. width: 14.28%;
  655. text-align: center;
  656. border-radius: 10rpx;
  657. background: #fff;
  658. cursor: pointer;
  659. display: flex;
  660. align-items: center;
  661. justify-content: center;
  662. }
  663. .circle {
  664. margin: 0 auto;
  665. width: 100%;
  666. height: 90rpx;
  667. line-height: 90rpx;
  668. font-size: 26rpx;
  669. }
  670. .sign {
  671. color: #fff;
  672. background: #18d5b9;
  673. border-radius: 50%;
  674. }
  675. .now {
  676. color: #fff;
  677. background: #708eff;
  678. border-radius: 50%;
  679. }
  680. .flex-box {
  681. display: flex;
  682. }
  683. .state {
  684. position: absolute;
  685. top: 0rpx;
  686. right: 0rpx;
  687. background: linear-gradient(163deg, rgba(24, 213, 185, 1) 0%, rgba(89, 240, 202, 1) 100%);
  688. box-shadow: 0px 0px 6rpx 0px rgba(24, 213, 185, 1);
  689. border-radius: 0px 2rpx 0px 20rpx;
  690. padding: 5rpx 30rpx;
  691. color: #fff;
  692. }
  693. .selected {
  694. width: 90%;
  695. display: flex;
  696. align-items: center;
  697. justify-content: space-between;
  698. margin: 0 auto;
  699. margin-top: 20upx !important;
  700. }
  701. .selected view {
  702. width: 45%;
  703. display: flex;
  704. align-items: center;
  705. justify-content: space-around;
  706. height: 80upx;
  707. border: 2upx solid #CCCCCC;
  708. font-size: 28rpx;
  709. background: #FFFFFF;
  710. }
  711. .selected view image {
  712. width: 30upx;
  713. height: 30upx;
  714. }
  715. .cover {
  716. position: fixed !important;
  717. }
  718. .circle {
  719. margin: 0 auto;
  720. width: 100%;
  721. height: 90rpx;
  722. line-height: 90rpx;
  723. font-size: 26rpx;
  724. }
  725. .sign {
  726. color: #fff;
  727. background: #18d5b9;
  728. border-radius: 50%;
  729. }
  730. .now {
  731. color: #fff;
  732. background: #708eff;
  733. border-radius: 50%;
  734. }
  735. </style>