capital-manage.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. <template>
  2. <view class="capital">
  3. <view class="cap_bg">
  4. <view class="bg_con">
  5. <view class="bg_up">
  6. <view class="bank_info flexS">
  7. <view class="title">可提现</view>
  8. <text>{{ store.account_bank===null?'未绑定银行卡':store.account_bank}}</text>
  9. <text v-if="store.account_number">({{store.account_number|hideMiddle(4)}})</text>
  10. </view>
  11. <view class="flexB" style="margin-top: 20rpx;">
  12. <view class="money">
  13. <text>¥</text>
  14. <text
  15. v-if="account&&account.available_amount">{{ account.available_amount | blanceFmt }}</text>
  16. <text v-else>0</text>
  17. </view>
  18. <!-- <view class="bg_btn" @click="store.account_bank===null?skipBank():withdraw()"
  19. v-if="account&&account.available_amount">
  20. {{store.account_bank===null?'添加银行卡':'去提现'}}
  21. </view> -->
  22. <view class="bg_btn" @click="store.account_bank===null?skipBank():withdraw()">
  23. {{store.account_bank===null?'添加银行卡':'去提现'}}
  24. </view>
  25. </view>
  26. </view>
  27. <view class="bg_center flexS">
  28. <text class="title flexC">已冻结</text>
  29. <view class="money">
  30. <text>¥</text>
  31. <text v-if="account&&account.pending_amount">{{ account.pending_amount | blanceFmt }}</text>
  32. <text>0</text>
  33. </view>
  34. </view>
  35. </view>
  36. <view class="bg_hint"><text>提醒:客户确认收货后,“冻结金额”里的钱会自动解冻到“可 提现金额”里,同时微信支付官方会收取0.6%的手续费。</text></view>
  37. </view>
  38. <view class="cap_con" :style="{ margin: current == 0 ? '30rpx 0' : '30rpx 0 0 0' }">
  39. <view class="flexB out_tab">
  40. <view class="tab_one">
  41. <u-tabs :list="tabs" :is-scroll="false" :current="current" active-color="#FB231F"
  42. @change="changeTab"></u-tabs>
  43. </view>
  44. <view class="date_picker flexS" @click="onShowDatePicker('range')">
  45. <text v-if="range" style="font-size:24rpx;">{{ range[0] }} - {{ range[1] }}</text>
  46. <text v-else>时间筛选</text>
  47. <text class="iconfont iconzhcc_xiangxiajiantou"></text>
  48. </view>
  49. </view>
  50. <view class="tab_three flexA" v-if="current == 0">
  51. <view @click="dateTab('daily')" :class="dataParams.cycle == 'daily' ? 'active_tab' : ''">昨日</view>
  52. <view @click="dateTab('today')" :class="dataParams.cycle == 'today' ? 'active_tab' : ''">今日</view>
  53. <view @click="dateTab('week')" :class="dataParams.cycle == 'week' ? 'active_tab' : ''">本周</view>
  54. <view @click="dateTab('month')" :class="dataParams.cycle == 'month' ? 'active_tab' : ''">本月</view>
  55. <view @click="dateTab('all')" :class="dataParams.cycle == 'all' ? 'active_tab' : ''">全部</view>
  56. </view>
  57. <view class="tab_two flexA" v-if="current == 1">
  58. <text :class="params.type == 1 ? 'base_color' : ''" @click="getType(1)">收款明细</text>
  59. <text :class="params.type == 2 ? 'base_color' : ''" @click="getType(2)">解冻明细</text>
  60. <text :class="params.type == 3 ? 'base_color' : ''" @click="getType(3)">提现明细</text>
  61. <text :class="params.type == 4 ? 'base_color' : ''" @click="getType(4)">退款明细</text>
  62. </view>
  63. </view>
  64. <view class="data_box" v-if="current == 0">
  65. <view class="data_tab">
  66. <u-tabs :list="dataList" :is-scroll="false" :current="dataCur" active-color="#FB231F"
  67. @change="changeData"></u-tabs>
  68. </view>
  69. <view class="all_data">
  70. <text>合计:</text>
  71. <text class="price">
  72. <text v-if="dataCur != 1">¥</text>
  73. <text>{{ allData }}</text>
  74. </text>
  75. </view>
  76. <view class="cap_chart" :style="{display:showPicker?'none':''}">
  77. <cap-column :chartData="columnData" />
  78. </view>
  79. <view class="cap_chart" :style="{display:showPicker?'none':''}">
  80. <cap-line :chartData="chartData" />
  81. </view>
  82. </view>
  83. <view class="tab_con" v-if="current == 1">
  84. <view class="withdraw_hint" v-if="params.type==3">
  85. <view>温馨提示:</view>
  86. <text>提现金额一般在第二天到账(遇节假日可能顺延)</text>
  87. </view>
  88. <view class="tab_top flexB" v-if="recordList.length > 0">
  89. <view>
  90. <view class="gray">{{ params.type|amountState }}记录</view>
  91. <view>
  92. <text style="color:#FB231F">{{ total }}</text>
  93. </view>
  94. </view>
  95. <view>
  96. <view class="gray">{{ params.type|amountState }}{{ params.type==3 ? '成功' : '' }}金额(元)</view>
  97. <view style="color:#FB231F">{{ num }}</view>
  98. </view>
  99. </view>
  100. <view class="tab_list" v-for="item in recordList" :key="item.id">
  101. <view class="flexB">
  102. <view>
  103. <text>{{ params.type|amountState }}</text>
  104. <text style="color:#FB231F" v-if="item.is_refund==1">(已退款)</text>
  105. </view>
  106. <text style="color:#FB231F">{{ item.money }}</text>
  107. </view>
  108. <!-- 1收款 2解冻 3提现 4退款 -->
  109. <view class="record_info">
  110. <view v-if="params.type==1">订单号:{{ item.order_no }}</view>
  111. <view v-if="params.type==4 && item.refund_money">订单号:{{ item.refund_money.order_no }}</view>
  112. <view v-if="params.type==4 && item.refund_money">退单号:{{ item.refund_money.refund_no }}</view>
  113. <view>{{ params.type|amountState }}时间:{{ item.created_at }}</view>
  114. <view v-if="params.type==3 && item.status_code">
  115. <text class="gray">提现状态:</text>
  116. <text v-if="item.status_code == 'CREATE_SUCCESS'"
  117. style="color:#FB231F">受理中(预计到账时间{{ item.created_at | addDate }})</text>
  118. <text v-if="item.status_code != 'CREATE_SUCCESS'">{{ item.status_code | getStatus }}</text>
  119. </view>
  120. <view v-if="params.type==3 &&(item.status_code == 'FAIL' ||item.status_code == 'REFUND' ) "
  121. class="fail_reason">
  122. <text class="gray" style="width:156rpx;">原因:</text>
  123. <text>{{ item.reason }}</text>
  124. </view>
  125. </view>
  126. </view>
  127. <view class="noData" v-if="recordList.length == 0">
  128. <image src="../../../static/imgs/default/no_record-min.png"></image>
  129. <view>--暂无记录--</view>
  130. </view>
  131. </view>
  132. <view class="date_picker">
  133. <mx-date-picker :show="showPicker" :type="type" :value="value" :show-tips="true" :show-seconds="true"
  134. @confirm="onSelected" @cancel="onSelected" />
  135. </view>
  136. </view>
  137. </template>
  138. <script>
  139. import {
  140. getAccount,
  141. withdraw,
  142. getRecord,
  143. getSaleInfo,
  144. getSaleAccount,
  145. } from '@/apis/shop.js';
  146. import blanceFmt from '@/filters/index.js';
  147. import MxDatePicker from '../../components/mx-datepicker/mx-datepicker.vue';
  148. import capLine from '../../components/charts/cap-line.vue';
  149. import capColumn from '../../components/charts/cap-column.vue';
  150. export default {
  151. data() {
  152. return {
  153. showPicker: false,
  154. date: '2019/01/01',
  155. time: '15:00:12',
  156. datetime: '2019/01/01 15:00:12',
  157. range: '', //显示的时间区间
  158. rangetime: ['2019/01/08', '2019/01/16'],
  159. type: 'rangetime',
  160. value: '',
  161. columnData: {},
  162. lineData: {},
  163. dataList: [{
  164. name: '销售额'
  165. },
  166. {
  167. name: '销量'
  168. },
  169. {
  170. name: '利润'
  171. }
  172. ],
  173. dataCur: 0,
  174. tabList: [{
  175. name: '收款明细'
  176. },
  177. {
  178. name: '解冻明细'
  179. },
  180. {
  181. name: '提现明细'
  182. },
  183. {
  184. name: '退款明细'
  185. }
  186. ],
  187. tabs: [{
  188. name: '销售数据'
  189. },
  190. {
  191. name: '交易明细'
  192. }
  193. ],
  194. dataParams: {
  195. cycle: 'today',
  196. startime: '',
  197. endtime: ''
  198. },
  199. current: 0, //tab切换
  200. account: {
  201. available_amount: 0,
  202. pending_amount: 0
  203. }, //金额统计
  204. params: {
  205. type: 1, //1收款 2解冻 3提现 4退款
  206. startime: '',
  207. endtime: '',
  208. page_index: 1,
  209. page_size: 5
  210. },
  211. recordList: '', //记录列表
  212. total: '', //总条数
  213. num: 0, //总金额
  214. totalPage: '', //总页数
  215. option: '', //柱状图
  216. showColumn: false,
  217. showLine: false,
  218. allData: 0, //柱状图显示总数量
  219. chartData: {},
  220. store: '' //店铺信息 为了显示银行卡信息
  221. };
  222. },
  223. components: {
  224. MxDatePicker,
  225. capColumn,
  226. capLine
  227. },
  228. onLoad(ops) {
  229. this.params.type = ops.type == undefined || ops.type == 'undefined' ? 1 : ops.type;
  230. this.current = ops.current == undefined || ops.current == 'undefined' ? 0 : ops.current;
  231. },
  232. onShow() {
  233. this.store = uni.getStorageSync('store')
  234. this.getAccount();
  235. if (this.current == 1) {
  236. this.params.page_index = 1;
  237. this.getDetail();
  238. } else {
  239. this.getData();
  240. }
  241. },
  242. onReachBottom() {
  243. if (this.current == 1) {
  244. this.getMore();
  245. }
  246. },
  247. filters: {
  248. getStatus(val) {
  249. switch (val) {
  250. case 'CREATE_SUCCESS':
  251. return '受理成功';
  252. break;
  253. case 'SUCCESS':
  254. return '提现成功';
  255. break;
  256. case 'FAIL':
  257. return '提现失败';
  258. break;
  259. case 'REFUND':
  260. return '提现退票';
  261. break;
  262. case 'CLOSE':
  263. return '关单';
  264. break;
  265. case 'INIT':
  266. return '业务单已创建';
  267. break;
  268. }
  269. },
  270. amountState(data) {
  271. switch (data) {
  272. case 1:
  273. return '收款';
  274. break;
  275. case 2:
  276. return '解冻';
  277. break;
  278. case 3:
  279. return '提现';
  280. break;
  281. case 4:
  282. return '退款';
  283. break;
  284. default:
  285. return ''
  286. }
  287. },
  288. addDate(time = +new Date()) {
  289. var date = time.replace(/-/g, '/'); //兼容ios
  290. var dateTime = new Date(date);
  291. dateTime = dateTime.setDate(dateTime.getDate() + 1);
  292. dateTime = new Date(dateTime);
  293. var end = dateTime.getFullYear() + '-' + (dateTime.getMonth() + 1) + '-' + dateTime.getDate();
  294. return end
  295. }
  296. },
  297. methods: {
  298. //跳转到添加银行卡
  299. skipBank() {
  300. uni.showModal({
  301. content: '该功能暂未开通',
  302. showCancel: false
  303. })
  304. return
  305. uni.navigateTo({
  306. url: '../edit-card/edit-card?type=' + 0
  307. })
  308. },
  309. changeData(e) {
  310. this.dataCur = e;
  311. this.getData();
  312. },
  313. //获取柱状图和折线图数据
  314. getData() {
  315. let params = this.dataParams;
  316. let dataCur = this.dataCur;
  317. uni.showLoading({
  318. title: '加载中...'
  319. })
  320. getSaleInfo(params).then(res => {
  321. if (res.code == 200) {
  322. let list = res.data;
  323. let xAxis = [];
  324. let arr = [];
  325. let all = 0;
  326. list.map(i => {
  327. if (dataCur == 0) {
  328. arr.push(i.account);
  329. all += Number(i.account);
  330. }
  331. if (dataCur == 1) {
  332. arr.push(i.num);
  333. all += Number(i.num);
  334. }
  335. if (dataCur == 2) {
  336. arr.push(Number(i.account) - Number(i.cost_account));
  337. all += Number(i.account) - Number(i.cost_account);
  338. }
  339. xAxis.push(i.goods.main_attr);
  340. });
  341. this.allData = all;
  342. this.columnData = {
  343. categories: xAxis,
  344. series: [{
  345. name: '统计',
  346. data: arr,
  347. }]
  348. };
  349. }
  350. uni.hideLoading()
  351. }).catch(err => {
  352. uni.hideLoading()
  353. })
  354. getSaleAccount(params).then(res => {
  355. if (res.code == 200) {
  356. let line = res.data.store;
  357. let goods = res.data.goods;
  358. let datas = [];
  359. let serData = [];
  360. goods.map(i => {
  361. let data = [];
  362. for (let k in line) {
  363. //日期
  364. let arr = line[k];
  365. if (arr.length > 0) {
  366. var a = 0;
  367. arr.map(j => {
  368. if (j.goods_id == i.id) {
  369. if (dataCur == 0) {
  370. data.push(j.account);
  371. }
  372. if (dataCur == 1) {
  373. data.push(j.num);
  374. }
  375. if (dataCur == 2) {
  376. data.push(Number(j.account) - Number(j
  377. .cost_account));
  378. }
  379. a = 1;
  380. }
  381. });
  382. if (a === 0) {
  383. data.push(0);
  384. }
  385. } else {
  386. data.push(0);
  387. }
  388. }
  389. datas[i.id] = data;
  390. let color = '';
  391. if (i.id == 1) {
  392. color = '#F04864';
  393. }
  394. if (i.id == 2) {
  395. color = '#8543E0';
  396. }
  397. if (i.id == 3) {
  398. color = '#90ED7D';
  399. }
  400. if (i.id == 4) {
  401. color = '#FACC14';
  402. }
  403. serData.push({
  404. name: i.main_attr,
  405. data: datas[i.id],
  406. color: color
  407. });
  408. });
  409. let lengedMap = [];
  410. Object.keys(line).map(v => {
  411. let index = v.indexOf('\-');
  412. v = v.substring(index + 1, v.length);
  413. lengedMap.push(v);
  414. });
  415. this.chartData = {
  416. categories: lengedMap,
  417. series: serData
  418. };
  419. this.showLine = true;
  420. }
  421. });
  422. },
  423. /*将对象数组转为二维数组*/
  424. zh(data) {
  425. var arr = [];
  426. for (var i in data) {
  427. arr[i] = [];
  428. for (var j in data[i]) {
  429. arr[i].push(data[i][j]);
  430. }
  431. }
  432. return arr;
  433. },
  434. onShowDatePicker(type) {
  435. //显示
  436. this.type = type;
  437. this.showPicker = true;
  438. this.dataParams.cycle = '';
  439. this.value = this[type];
  440. },
  441. onSelected(e) {
  442. //选择
  443. this.showPicker = false;
  444. if (e) {
  445. this[this.type] = e.value;
  446. //选择的值
  447. if (this.current == 0) {
  448. this.dataParams.startime = e.value[0];
  449. this.dataParams.endtime = e.value[1];
  450. this.getData();
  451. } else {
  452. this.params.startime = e.value[0];
  453. this.params.endtime = e.value[1];
  454. this.getDetail();
  455. }
  456. }
  457. },
  458. /*获取账户信息*/
  459. getAccount() {
  460. getAccount().then(res => {
  461. if (res.code == 200) {
  462. this.account = res.data;
  463. } else {
  464. uni.showModal({
  465. content: res.data || '获取信息失败',
  466. showCancel: false
  467. });
  468. }
  469. });
  470. },
  471. /*获取提现记录*/
  472. getDetail(isMore) {
  473. let _this = this;
  474. let params = this.params;
  475. getRecord(params).then(res => {
  476. if (res.code == 200) {
  477. _this.num = res.data.list.account;
  478. _this.recordList = isMore ? _this.recordList.concat(res.data.list.list) : res.data.list
  479. .list;
  480. _this.total = res.data.total;
  481. _this.totalPage = Math.ceil(res.data.total / _this.params.page_size);
  482. } else {
  483. uni.showModal({
  484. content: res.data || '获取记录失败',
  485. showCancel: false
  486. });
  487. }
  488. });
  489. },
  490. /*获取更多的记录*/
  491. getMore() {
  492. this.params.page_index++;
  493. if (this.params.page_index > this.totalPage) {
  494. uni.showToast({
  495. title: '没有更多啦~',
  496. icon: 'none'
  497. });
  498. return false;
  499. }
  500. this.getDetail(true);
  501. },
  502. //切换销售数据和交易明细
  503. changeTab(tabType) {
  504. this.current = tabType;
  505. this.range = '';
  506. this.params.page_index = 1;
  507. tabType == 0 ? this.getData() : this.getDetail();
  508. },
  509. //切换销售数据中的
  510. dateTab(cycle) {
  511. this.range = '';
  512. this.dataParams.cycle = cycle;
  513. this.getData();
  514. },
  515. // tabType 1收款 2解冻 3提现 4退款 tab切换
  516. getType(tabType) {
  517. this.recordList = [];
  518. this.params.type = tabType;
  519. this.params.page_index = 1;
  520. this.getDetail();
  521. },
  522. /*提现*/
  523. withdraw() {
  524. uni.showModal({
  525. content: '该功能暂未开通',
  526. showCancel: false
  527. })
  528. return
  529. let money = this.account.available_amount;
  530. if (money == 0) {
  531. uni.showModal({
  532. content: '暂无可提现金额',
  533. showCancel: false
  534. });
  535. return false;
  536. }
  537. uni.navigateTo({
  538. url: '../../../pages/capital-withdrawal/capital-withdrawal?limit=' + money
  539. })
  540. },
  541. }
  542. };
  543. </script>
  544. <style lang="scss" scoped>
  545. .capital {
  546. width: 100%;
  547. min-height: 100%;
  548. background: #f9f9f8;
  549. display: flex;
  550. flex-direction: column;
  551. .cap_bg {
  552. width: 712rpx;
  553. height: 380rpx;
  554. margin: 30rpx auto 0;
  555. background: url(../../static/cap_bg1.png) no-repeat;
  556. background-size: 100% 100%;
  557. position: relative;
  558. .bg_btn {
  559. width: 176rpx;
  560. height: 68rpx;
  561. background: #ffb300;
  562. border-radius: 34rpx;
  563. text-align: center;
  564. line-height: 68rpx;
  565. color: #fff;
  566. font-size: 32rpx;
  567. font-weight: bold;
  568. letter-spacing: 2rpx;
  569. }
  570. .bg_con {
  571. width: 690rpx;
  572. margin: 0 auto;
  573. padding: 30rpx 20rpx 0 20rpx;
  574. box-sizing: border-box;
  575. .money {
  576. text {
  577. color: #fff;
  578. }
  579. }
  580. .title {
  581. font-size: 34rpx;
  582. text-align: center;
  583. border-radius: 6rpx;
  584. width: 122rpx;
  585. height: 48rpx;
  586. line-height: 48rpx;
  587. background: #fff;
  588. color: $base-color;
  589. font-weight: bold;
  590. margin-right: 20rpx;
  591. }
  592. .bg_up {
  593. border-bottom: 2rpx solid #fff;
  594. padding-bottom: 20rpx;
  595. .bank_info {
  596. text {
  597. color: #fff;
  598. font-size: 30rpx;
  599. }
  600. }
  601. .money {
  602. text:first-child {
  603. font-size: 40rpx;
  604. margin-right: 10rpx;
  605. }
  606. text:last-child {
  607. font-size: 72rpx;
  608. }
  609. }
  610. }
  611. .bg_center {
  612. padding-top: 15rpx;
  613. .money {
  614. margin-left: 20rpx;
  615. text:first-child {
  616. font-size: 28rpx;
  617. margin-right: 10rpx;
  618. }
  619. text:last-child {
  620. font-size: 44rpx;
  621. }
  622. }
  623. }
  624. }
  625. .bg_hint {
  626. width: 100%;
  627. height: 88rpx;
  628. background: #bc0202;
  629. display: flex;
  630. align-items: center;
  631. padding: 0 20rpx;
  632. border-radius: 0 0 24rpx 24rpx;
  633. position: absolute;
  634. bottom: 0;
  635. left: 0;
  636. box-sizing: border-box;
  637. text {
  638. font-size: 24rpx;
  639. color: #ffec8e;
  640. }
  641. }
  642. }
  643. .cap_con {
  644. position: relative;
  645. width: 100%;
  646. min-height: 214rpx;
  647. background-color: #fff;
  648. // margin: 30rpx 0;
  649. box-sizing: border-box;
  650. display: flex;
  651. flex-direction: column;
  652. justify-content: center;
  653. .out_tab {
  654. box-sizing: border-box;
  655. padding: 0 30rpx;
  656. .tab_one {
  657. width: 40%;
  658. }
  659. .date_picker {
  660. height: 64rpx;
  661. line-height: 64rpx;
  662. background: #f8f8f8;
  663. padding: 0 20rpx;
  664. border-radius: 8rpx;
  665. .iconfont {
  666. color: #999;
  667. margin-left: 6rpx;
  668. }
  669. }
  670. }
  671. .tab_two {
  672. width: 100%;
  673. height: 64rpx;
  674. background: #fff4f3;
  675. margin: 30rpx 0;
  676. text {
  677. font-size: 28rpx;
  678. }
  679. .base_color {
  680. color: $base-color;
  681. font-weight: bold;
  682. }
  683. }
  684. .tab_three {
  685. padding: 0 30rpx;
  686. margin: 30rpx 0;
  687. box-sizing: border-box;
  688. .active_tab {
  689. background: linear-gradient(95deg, #ff232c 0%, #ff571b 100%);
  690. color: #fff;
  691. border: none;
  692. }
  693. view {
  694. width: 120rpx;
  695. text-align: center;
  696. height: 60rpx;
  697. line-height: 60rpx;
  698. border-radius: 32rpx;
  699. border: 2rpx solid #999999;
  700. color: #999;
  701. }
  702. }
  703. }
  704. .tab_con {
  705. width: 100%;
  706. background: #fff;
  707. padding: 0 30rpx 40rpx;
  708. box-sizing: border-box;
  709. flex: 1;
  710. .withdraw_hint {
  711. padding-bottom: 30rpx;
  712. border-bottom: 4rpx solid #eeeeee;
  713. view,
  714. text {
  715. color: #4185f5;
  716. }
  717. view {
  718. font-size: 30rpx;
  719. font-weight: bold;
  720. }
  721. text {
  722. font-size: 28rpx;
  723. }
  724. }
  725. .tab_top {
  726. border-bottom: 2px solid #eeeeee;
  727. padding: 15rpx 0;
  728. margin-bottom: 30rpx;
  729. .gray {
  730. margin-bottom: 15rpx;
  731. }
  732. }
  733. .tab_list {
  734. margin-bottom: 30rpx;
  735. .fail_reason {
  736. display: flex;
  737. justify-content: flex-start;
  738. align-items: flex-start;
  739. margin-top: 15rpx;
  740. }
  741. .record_info {
  742. >view {
  743. margin-top: 15rpx;
  744. color: #999;
  745. }
  746. }
  747. }
  748. }
  749. .data_box {
  750. width: 100%;
  751. flex: 1;
  752. background: #fff;
  753. z-index: 99;
  754. .chart-column {
  755. background: #ff000022;
  756. position: relative;
  757. .chart {
  758. width: 100%;
  759. height: 100%;
  760. }
  761. }
  762. .all_data {
  763. padding: 20rpx 0 0 30rpx;
  764. .price {
  765. text {
  766. color: $base-color;
  767. }
  768. font-size: 36rpx;
  769. }
  770. }
  771. .cap_chart {
  772. height: 300px;
  773. margin-top: 30rpx;
  774. width: 100%;
  775. overflow: hidden;
  776. z-index: 99
  777. }
  778. }
  779. .date_picker {
  780. z-index: 99999;
  781. }
  782. }
  783. </style>