| <template> | 
|   <el-row :gutter="10" class="panel-group"> | 
|     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> | 
|       <div class="card-panel" @click="handleSetLineChartData('wayBillNum')"> | 
|         <div class="card-panel-icon-wrapper icon-people"> | 
|           <svg-icon icon-class="documentation" class-name="card-panel-icon" /> | 
|         </div> | 
|         <div class="card-panel-description"> | 
|           <div class="card-panel-text">总运单数</div> | 
|           <count-to :start-val="0" :end-val="numStatistics.wayBillNum" :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('waitWayBillNum')"> | 
|         <div class="card-panel-icon-wrapper icon-money"> | 
|           <svg-icon icon-class="edit" class-name="card-panel-icon" /> | 
|         </div> | 
|         <div class="card-panel-description"> | 
|           <div class="card-panel-text">待打印运单</div> | 
|           <count-to :start-val="0" :end-val="numStatistics.waitWayBillNum" :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('waitProductNum')"> | 
|         <div class="card-panel-icon-wrapper icon-message"> | 
|           <svg-icon icon-class="shopping" class-name="card-panel-icon" /> | 
|         </div> | 
|         <div class="card-panel-description"> | 
|           <div class="card-panel-text">身份证未上传</div> | 
|           <count-to :start-val="0" :end-val="numStatistics.waitProductNum" :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('noGroupWayBillNum')"> | 
|         <div class="card-panel-icon-wrapper icon-shopping"> | 
|           <svg-icon icon-class="form" class-name="card-panel-icon" /> | 
|         </div> | 
|         <div class="card-panel-description"> | 
|           <div class="card-panel-text">退货件</div> | 
|           <count-to :start-val="0" :end-val="numStatistics.noGroupWayBillNum" :duration="3600" class="card-panel-num" /> | 
|         </div> | 
|       </div> | 
|     </el-col> | 
|   </el-row> | 
| </template> | 
|   | 
| <script> | 
| import CountTo from "vue-count-to"; | 
|   | 
| export default { | 
|   components: { | 
|     CountTo | 
|   }, | 
|   data() { | 
|     return { | 
|       numStatistics: { | 
|         wayBillNum: 0, | 
|         waitWayBillNum: 0, | 
|         waitProductNum: 0, | 
|         noGroupWayBillNum: 0 | 
|       } | 
|     }; | 
|   }, | 
|   mounted() { | 
|     this.getUserNumStatistics(); | 
|   }, | 
|   methods: { | 
|     handleSetLineChartData(type) { | 
|       var addList = null; | 
|       if (type === "wayBillNum") { | 
|         localStorage.removeItem("addList"); | 
|         this.$router.push({ path: "/way/bill" }); | 
|       } else if (type === "waitWayBillNum") { | 
|         addList = [{ propName: "printStatus", value: "未打印" }]; | 
|         localStorage.setItem("addList", JSON.stringify(addList)); | 
|         this.$router.push({ path: "/way/bill" }); | 
|       } else if (type === "waitProductNum") { | 
|         addList = [{ propName: "consigneeIdcard", value: "null" }]; | 
|         localStorage.setItem("addList", JSON.stringify(addList)); | 
|         this.$router.push({ path: "/way/bill" }); | 
|       } else if (type === "noGroupWayBillNum") { | 
|         addList = [{ propName: "orderStatus", value: "已退货" }]; | 
|         localStorage.setItem("addList", JSON.stringify(addList)); | 
|         this.$router.push({ path: "/way/bill" }); | 
|       } | 
|   | 
|       // this.$emit("handleSetLineChartData", type); | 
|     }, | 
|     getUserNumStatistics() { | 
|       const url = "/api/dashboard/tms/getUserNumStatistics"; | 
|       const params = {}; | 
|       var callback = res => { | 
|         if (res.result) { | 
|           this.numStatistics = res.data; | 
|         } | 
|       }; | 
|       this.common.ajax(url, params, callback, true); | 
|     } | 
|   } | 
| }; | 
| </script> | 
|   | 
| <style rel="stylesheet/scss" lang="scss" scoped> | 
| .panel-group { | 
|   margin-top: 5px; | 
|   .card-panel-col { | 
|     margin-bottom: 10px; | 
|   } | 
|   .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, 0.05); | 
|     border-color: rgba(0, 0, 0, 0.05); | 
|     border-radius: 4px; | 
|     border: 1px solid #e4e4e4; | 
|     &: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; | 
|     } | 
|     .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; | 
|       } | 
|     } | 
|   } | 
| } | 
| </style> |