Просмотр исходного кода

生产总览-顶部统计卡片

aiwenzhu 2 месяцев назад
Родитель
Сommit
eb8bbf3575

Разница между файлами не показана из-за своего большого размера
+ 9 - 0
src/icons/svg/order-completed.svg


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
src/icons/svg/order-produced.svg


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
src/icons/svg/order-producing.svg


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
src/icons/svg/order-total-count.svg


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
src/icons/svg/order-total.svg


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
src/icons/svg/order-uncompleted.svg


Разница между файлами не показана из-за своего большого размера
+ 9 - 0
src/icons/svg/order-unproduced.svg


+ 109 - 108
src/views/productManagement/productionSummary/index.vue

@@ -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;
       }
     }
   }

Некоторые файлы не были показаны из-за большого количества измененных файлов