|
@@ -7,85 +7,71 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 顶部统计卡片 -->
|
|
|
- <el-row :gutter="20" class="panel-group">
|
|
|
- <el-col :span="3">
|
|
|
- <div class="card-panel">
|
|
|
- <div class="card-panel-icon-wrapper" style="background: #E7F1FF;">
|
|
|
- <svg-icon icon-class="order" class="card-panel-icon" />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">本月总订单</div>
|
|
|
- <count-to :start-val="0" :end-val="20" :duration="2000" class="card-panel-num"/>
|
|
|
- </div>
|
|
|
+ <div class="statistics-panel">
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="icon-wrapper">
|
|
|
+ <svg-icon icon-class="order-total" class="icon" />
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <div class="card-panel">
|
|
|
- <div class="card-panel-icon-wrapper" style="background: #E8FFF3;">
|
|
|
- <svg-icon icon-class="produced" class="card-panel-icon" />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">本月已生产订单</div>
|
|
|
- <count-to :start-val="0" :end-val="5" :duration="2000" class="card-panel-num"/>
|
|
|
- </div>
|
|
|
+ <div class="stat-info">
|
|
|
+ <count-to :start-val="0" :end-val="20" :duration="2000" class="num"/>
|
|
|
+ <div class="text">本月总订单</div>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <div class="card-panel">
|
|
|
- <div class="card-panel-icon-wrapper" style="background: #E6FFFB;">
|
|
|
- <svg-icon icon-class="producing" class="card-panel-icon" />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">正在生产订单</div>
|
|
|
- <count-to :start-val="0" :end-val="8" :duration="2000" class="card-panel-num"/>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="icon-wrapper">
|
|
|
+ <svg-icon icon-class="order-produced" class="icon" />
|
|
|
+ </div>
|
|
|
+ <div class="stat-info">
|
|
|
+ <count-to :start-val="0" :end-val="5" :duration="2000" class="num"/>
|
|
|
+ <div class="text">本月已生产订单</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="icon-wrapper">
|
|
|
+ <svg-icon icon-class="order-producing" class="icon" />
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <div class="card-panel">
|
|
|
- <div class="card-panel-icon-wrapper" style="background: #FFF7E6;">
|
|
|
- <svg-icon icon-class="unproduced" class="card-panel-icon" />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">未生产</div>
|
|
|
- <count-to :start-val="0" :end-val="7" :duration="2000" class="card-panel-num"/>
|
|
|
- </div>
|
|
|
+ <div class="stat-info">
|
|
|
+ <count-to :start-val="0" :end-val="8" :duration="2000" class="num"/>
|
|
|
+ <div class="text">正在生产订单</div>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <div class="card-panel">
|
|
|
- <div class="card-panel-icon-wrapper" style="background: #F0E6FF;">
|
|
|
- <svg-icon icon-class="total" class="card-panel-icon" />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">订单总量</div>
|
|
|
- <count-to :start-val="0" :end-val="1000" :duration="2000" class="card-panel-num"/>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="icon-wrapper">
|
|
|
+ <svg-icon icon-class="order-unproduced" class="icon" />
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <div class="card-panel">
|
|
|
- <div class="card-panel-icon-wrapper" style="background: #E6FFF6;">
|
|
|
- <svg-icon icon-class="completed" class="card-panel-icon" />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">已完成量</div>
|
|
|
- <count-to :start-val="0" :end-val="5000" :duration="2000" class="card-panel-num"/>
|
|
|
- </div>
|
|
|
+ <div class="stat-info">
|
|
|
+ <count-to :start-val="0" :end-val="7" :duration="2000" class="num"/>
|
|
|
+ <div class="text">未生产</div>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <div class="card-panel">
|
|
|
- <div class="card-panel-icon-wrapper" style="background: #FFE6E6;">
|
|
|
- <svg-icon icon-class="uncompleted" class="card-panel-icon" />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">未完成量</div>
|
|
|
- <count-to :start-val="0" :end-val="5000" :duration="2000" class="card-panel-num"/>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="icon-wrapper">
|
|
|
+ <svg-icon icon-class="order-total-count" class="icon" />
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <div class="stat-info">
|
|
|
+ <count-to :start-val="0" :end-val="1000" :duration="2000" class="num"/>
|
|
|
+ <div class="text">订单总量</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="icon-wrapper">
|
|
|
+ <svg-icon icon-class="order-completed" class="icon" />
|
|
|
+ </div>
|
|
|
+ <div class="stat-info">
|
|
|
+ <count-to :start-val="0" :end-val="5000" :duration="2000" class="num"/>
|
|
|
+ <div class="text">已完成量</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="icon-wrapper">
|
|
|
+ <svg-icon icon-class="order-uncompleted" class="icon" />
|
|
|
+ </div>
|
|
|
+ <div class="stat-info">
|
|
|
+ <count-to :start-val="0" :end-val="5000" :duration="2000" class="num"/>
|
|
|
+ <div class="text">未完成量</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
<!-- 生产概况表格 -->
|
|
|
<el-card class="box-card" style="margin-top: 20px;">
|
|
@@ -226,63 +212,78 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-.panel-group {
|
|
|
+.statistics-panel {
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 8px;
|
|
|
+ padding: 24px;
|
|
|
margin-top: 24px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
|
|
|
|
|
|
- .card-panel {
|
|
|
- height: 108px;
|
|
|
- cursor: pointer;
|
|
|
- font-size: 12px;
|
|
|
- position: relative;
|
|
|
- overflow: hidden;
|
|
|
- color: #666;
|
|
|
- background: #fff;
|
|
|
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
|
|
|
- border-radius: 8px;
|
|
|
- padding: 20px;
|
|
|
+ .stat-item {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+ padding: 0 16px;
|
|
|
+ cursor: pointer;
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
|
&:hover {
|
|
|
transform: translateY(-2px);
|
|
|
- box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.08);
|
|
|
+ .icon-wrapper {
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
|
+ .icon {
|
|
|
+ color: #409EFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .stat-info {
|
|
|
+ .num {
|
|
|
+ color: #409EFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .card-panel-icon-wrapper {
|
|
|
- float: left;
|
|
|
- margin: 0;
|
|
|
- padding: 16px;
|
|
|
- transition: all 0.3s ease-out;
|
|
|
- border-radius: 50%;
|
|
|
+ &:active {
|
|
|
+ transform: translateY(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon-wrapper {
|
|
|
width: 56px;
|
|
|
height: 56px;
|
|
|
+ border-radius: 50%;
|
|
|
display: flex;
|
|
|
justify-content: center;
|
|
|
align-items: center;
|
|
|
- }
|
|
|
+ margin-right: 12px;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ background: #f5f7fa;
|
|
|
|
|
|
- .card-panel-icon {
|
|
|
- float: left;
|
|
|
- font-size: 28px;
|
|
|
+ .icon {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ color: #333;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .card-panel-description {
|
|
|
- float: right;
|
|
|
- font-weight: bold;
|
|
|
- margin: 8px 0 0 16px;
|
|
|
-
|
|
|
- .card-panel-text {
|
|
|
- line-height: 20px;
|
|
|
- color: #606266;
|
|
|
- font-size: 14px;
|
|
|
- margin-bottom: 12px;
|
|
|
- }
|
|
|
+ .stat-info {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
|
|
|
- .card-panel-num {
|
|
|
- font-size: 24px;
|
|
|
+ .num {
|
|
|
+ font-size: 20px;
|
|
|
font-weight: 600;
|
|
|
color: #1f2d3d;
|
|
|
+ line-height: 1;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #606266;
|
|
|
+ white-space: nowrap;
|
|
|
}
|
|
|
}
|
|
|
}
|