<template> <div> <el-row :gutter="40" class="panel-group"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <div class="card-panel" @click="handleSetLineChartData('newVisitis')"> <div class="card-panel-icon-wrapper icon-people"> <svg-icon icon-class="peoples" class-name="card-panel-icon" /> </div> <div class="card-panel-description"> <div class="card-panel-text"> 总商品 </div> <count-to :start-val="0" :end-val="panelData.goods_total" :duration="2600" class="card-panel-num" /> </div> </div> </el-col> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <div class="card-panel" @click="handleSetLineChartData('messages')"> <div class="card-panel-icon-wrapper icon-message"> <svg-icon icon-class="message" class-name="card-panel-icon" /> </div> <div class="card-panel-description"> <div class="card-panel-text"> 总订单 </div> <count-to :start-val="0" :end-val="panelData.order_total" :duration="3000" class="card-panel-num" /> </div> </div> </el-col> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <div class="card-panel" @click="handleSetLineChartData('purchases')"> <div class="card-panel-icon-wrapper icon-money"> <svg-icon icon-class="money" class-name="card-panel-icon" /> </div> <div class="card-panel-description"> <div class="card-panel-text"> 总收入 </div> <count-to :start-val="0" :end-val="panelData.total_price" :decimals="2" :duration="3200" class="card-panel-num" /> </div> </div> </el-col> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <div class="card-panel" @click="handleSetLineChartData('shoppings')"> <div class="card-panel-icon-wrapper icon-shopping"> <svg-icon icon-class="shopping" class-name="card-panel-icon" /> </div> <div class="xz-tip">{{(panelData.refund_total < 100)? panelData.refund_total : '99+' }}</div> <div class="card-panel-description"> <div class="card-panel-text"> 售后订单 </div> <count-to :start-val="0" :end-val="panelData.refund_total" :duration="3600" class="card-panel-num" /> </div> </div> </el-col> </el-row> <!-- 保证金充值提醒 --> <el-dialog style="margin-top: 200px;" title="保证金充值提醒" :visible.sync="dialogVisible" :destroy-on-close="true" width="35%" center :close-on-click-modal="false" append-to-body > <div> <div style="background: rgba(58, 160, 255, .05); padding: 20px; line-height: 24px; text-align: center;"> <div>当前保证金余额不足,部分功能受限,请您及时充值保证金</div> </div> </div> <span slot="footer" class="dialog-footer"> <el-button type="danger" @click="goPay">去充值</el-button> </span> </el-dialog> </div> </template> <script> import CountTo from 'vue-count-to' import { shopInfo } from '@/api/securityFund'; export default { data() { return { dialogVisible: false } }, props: { panelData: { type: Object, default: 'chart' }}, components: { CountTo }, mounted() { // console.log(75,this.panelData); this.getShopInfo() }, methods: { // 获取店铺信息 getShopInfo() { shopInfo().then(res => { if (res.code == 1) { // 是否需要缴纳保证金 0否 1是 if (res.data.is_take_bond == 1 && res.data.bond < res.data.cate_bond / 2) { this.dialogVisible = true } else { this.dialogVisible = false } } }) }, handleSetLineChartData(type) { this.$emit('handleSetLineChartData', type) }, goPay() { this.dialogVisible = false this.$router.push({ path: '/system/asset/securityFund' }) } } } </script> <style lang="scss" scoped type="text/stylus"> .panel-group { margin-top: 18px; .card-panel-col { margin-bottom: 32px; } .card-panel { height: 108px; cursor: pointer; font-size: 12px; position: relative; overflow: hidden; color: #666; background: #fff; box-shadow: 4px 4px 40px rgba(0, 0, 0, .05); border-color: rgba(0, 0, 0, .05); &:hover { .card-panel-icon-wrapper { color: #fff; } .icon-people { background: #40c9c6; } .icon-message { background: #36a3f7; } .icon-money { background: #f4516c; } .icon-shopping { background: #34bfa3 } } .icon-people { color: #40c9c6; } .icon-message { color: #36a3f7; } .icon-money { color: #f4516c; } .icon-shopping { color: #34bfa3 } .card-panel-icon-wrapper { float: left; margin: 14px 0 0 14px; padding: 16px; transition: all 0.38s ease-out; border-radius: 6px; } .card-panel-icon { float: left; font-size: 48px; } .xz-tip { float: left; background-color : #f4516c; color: #fff; width: 24px; height: 24px; border-radius: 12px; line-height: 24px; text-align :center; margin-top: 18px; margin-left: -24px; animation : xzTip 3s; } @keyframes xzTip{ 0% { } 25% { } 50% { } 75% { } 100% { } } .card-panel-description { float: right; font-weight: bold; margin: 26px; margin-left: 0px; .card-panel-text { line-height: 18px; color: rgba(0, 0, 0, 0.45); font-size: 16px; margin-bottom: 12px; } .card-panel-num { font-size: 20px; } } } } @media (max-width:550px) { .card-panel-description { display: none; } .card-panel-icon-wrapper { float: none !important; width: 100%; height: 100%; margin: 0 !important; .svg-icon { display: block; margin: 14px auto !important; float: none !important; } } } </style>