Browse Source

配资总览页面

liyuan 1 month ago
parent
commit
7d3d14ca71

+ 10 - 0
src/api/erp/allocation.js

@@ -0,0 +1,10 @@
+import request from '@/router/axios';
+
+
+export function capitalSummary(data) {
+    return request({
+        url: '/api/blade-sales-part/statistics/capitalSummary',
+        method: 'post',
+        data: data
+    })
+}

+ 2 - 4
src/views/allocationContract/detailsPageEdit.vue

@@ -240,7 +240,7 @@
                 </el-input>
               </el-form-item>
             </el-col>
-            <el-col span="4">
+            <el-col span="6">
               <el-form-item label="税率" prop="taxRate">
                 <el-input type="age" v-model.trim="form.taxRate" size="small" autocomplete="off" placeholder="请输入税率" v-input-limit="2">
                   <template slot="append">%</template>
@@ -256,9 +256,7 @@
               <el-button class="el-button--small-yh" type="primary" :loading="saveLoading" size="small" @click="calculateInterest()"
                 >利息计算
               </el-button>
-              <el-button type="info" size="small" icon="el-icon-printer" @click.stop="openReport()" v-show="goodsActives == 'goods'"
-                >报表打印</el-button
-              >
+              <el-button type="info" size="small" icon="el-icon-printer" @click.stop="openReport()">合同打印</el-button>
             </el-col>
           </el-row>
         </basic-container>

+ 433 - 0
src/views/overviewAllocation/index-1.vue

@@ -0,0 +1,433 @@
+<template>
+  <!--青岛鑫动力-->
+  <div>
+    <basic-container>
+      <div class="echattsBox">
+        <div style="display: flex;justify-content: flex-end;">
+          <div>
+            <el-date-picker
+              v-model="annual4"
+              type="year"
+              size="small"
+              placeholder="选择年"
+              value-format="yyyy"
+              style="margin-right:10px;margin-bottom: -20px"
+              @change="commoDity3Datafun"
+            >
+            </el-date-picker>
+          </div>
+          <div>
+            <dic-select
+              v-model="customerName"
+              placeholder="租户"
+              key="id"
+              label="customerName"
+              url="/blade-system/tenant/getFundingCustomerList "
+              :filterable="true"
+              :clearable="false"
+              dataName="customerName"
+              @selectChange="dicChange('customerName', $event)"
+            ></dic-select>
+          </div>
+        </div>
+        <div style="margin: 20px 0;">
+          <div style="display: flex;align-items: center;justify-content: space-around">
+            <div style="width: 100%;">
+              <div class="bottomFlex" style="justify-content: space-around">
+                <div>
+                  <div style="color: #81B337">
+                    <span>订单金额:</span>
+                    <span class="weightnum">¥{{ overviewForm.totalMoney || "0.00" }}元</span>
+                  </div>
+                </div>
+                <div>
+                  <div style="color: #6BBCD1">
+                    <span>配额:</span>
+                    <span class="weightnum">¥{{ overviewForm.fundingAmount || "0.00" }}元</span>
+                  </div>
+                </div>
+                <div>
+                  <div style="color: #808bbd">
+                    <span>保证金:</span>
+                    <span class="weightnum">¥{{ overviewForm.bondAmount || "0.00" }}元</span>
+                  </div>
+                </div>
+                <div>
+                  <div style="color: #b3373f">
+                    <span>还款:</span>
+                    <span class="weightnum">¥{{ overviewForm.repayment || "0.00" }}元</span>
+                  </div>
+                </div>
+                <div style="color: #8dab14">
+                  <span>允许提货金额:</span>
+                  <span>¥{{ overviewForm.amount || "0.00" }}元</span>
+                </div>
+                <div style="color: #f09d68">
+                  <span>资金占用:</span>
+                  <span>¥{{ overviewForm.interest || "0.00" }}元</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div style="height:78vh" id="commoDity3"></div>
+      </div>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+import dicSelect from "@/components/dicSelect/main";
+import indexCard from "@/views/wel/components/card.vue";
+import { columnarRz, realTimeOverview } from "@/api/overviewAllocation/index";
+import { getYearDate } from "@/util/date";
+import { getParamservice } from "@/api/tirePartsMall/purchasingManagement/warehouseEntryOrder";
+import "@/assets/icon/homeicon/iconfont.css";
+export default {
+  components: { indexCard, dicSelect },
+  props: {
+    sysType: Number
+  },
+  data() {
+    return {
+      tenantId: "883868",
+      customerName: "黄岛鑫动力",
+      annual4: "", // echatts 时间筛选
+      amountList2: [], // 金额
+      numberList2: [], // 数量
+      amountList3: [], // 金额
+      numberList3: [], // 数量
+      primaryFundingAmount3: [],
+      search: {
+        dateList: [],
+        sort: 1
+      }, // 表格 筛选
+      dingdanzhuangtai: [], // 订单状态
+      orderStatusList: [], // 支付状态
+      saberUserInfo: {}, // 当前登录人数据
+      overviewForm: {},
+      inShow: false
+    };
+  },
+  created() {
+    this.annual4 = getYearDate().toString(); // 获取当前时间
+  },
+  mounted() {
+    this.commoDity3Datafun();
+    realTimeOverview({ year: Number(this.annual4), tenantId: this.tenantId }).then(res => {
+      this.overviewForm = res.data.data;
+    });
+  },
+  methods: {
+    dicChange(name, row) {
+      if (name == "customerName") {
+        this.tenantId = row.customerCode;
+        this.commoDity3Datafun();
+      }
+    },
+    // 排序切换
+    sortfun() {
+      if (this.search.sort == 1) {
+        this.search.sort = 2;
+      } else {
+        this.search.sort = 1;
+      }
+    },
+    // 点击跳转
+    Jumpfun(row) {
+      if (row.type == "FHGD") {
+        this.$router.push({
+          path: "/tirePartsMall/salesManagement/outboundWorkOrder/index",
+          query: { id: row.id }
+        });
+      } else if (row.type == "XS") {
+        this.$router.push({
+          path: "/tirePartsMall/salesManagement/saleOrder/index",
+          query: { jumpId: row.id }
+        });
+      } else if (row.type == "FHRW") {
+        this.$router.push({
+          path: "/tirePartsMall/salesManagement/outboundTask/index"
+        });
+      }
+    },
+    // 获取echarts 表的数据
+    commoDity3Datafun() {
+      columnarRz({
+        year: Number(this.annual4),
+        tenantId: this.tenantId
+      }).then(res => {
+        this.amountList3 = res.data.data.amount;
+        this.numberList3 = res.data.data.number;
+        this.primaryFundingAmount3 = res.data.data.primaryFundingAmount;
+        this.commoDity3();
+        realTimeOverview({ year: Number(this.annual4), tenantId: this.tenantId }).then(res => {
+          this.overviewForm = res.data.data;
+        });
+      });
+    },
+    commoDity3() {
+      // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
+      let myChart = this.$echarts.init(document.getElementById("commoDity3"));
+      // 绘制图表
+      myChart.setOption({
+        color: ["#5266bc", "#EE6666", "#98c46d"],
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "cross",
+            label: {
+              precision: "0" // 设备y轴指示线保留整数 文本标签中数值的小数点精度。默认根据当前轴的值自动判断。也可以指定如 2 表示保留两位小数。
+            },
+            crossStyle: {
+              color: "#999"
+            }
+          }
+        },
+        toolbox: {},
+        legend: {
+          data: ["订单数量", "订单金额", "配额"]
+        },
+        xAxis: [
+          {
+            type: "category",
+            data: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
+            axisPointer: {
+              type: "shadow"
+            }
+          }
+        ],
+        grid: {
+          left: "10%",
+          right: "10%",
+          bottom: "3%",
+          containLabel: true
+        },
+        yAxis: [
+          {
+            type: "value",
+            name: "订单数量(条)",
+            position: "left",
+            min: 0,
+            axisLine: {
+              show: true,
+              lineStyle: {
+                color: "#5266bc" //y轴线的颜色(若只设置了y轴线的颜色,未设置y轴文字的颜色,则y轴文字会默认跟设置的y轴线颜色一致)
+              }
+            },
+            axisLabel: {
+              formatter: "{value}"
+            }
+          },
+          {
+            type: "value",
+            name: "订单金额(元)",
+            position: "right",
+            min: 0,
+            axisLine: {
+              show: true,
+              lineStyle: {
+                color: "#EE6666" //y轴线的颜色(若只设置了y轴线的颜色,未设置y轴文字的颜色,则y轴文字会默认跟设置的y轴线颜色一致)
+              }
+            },
+            axisLabel: {
+              formatter: "{value}"
+              // textStyle: {
+              //     color: "#000",//Y轴内容文字颜色
+              // },
+            }
+          },
+          {
+            type: "value",
+            name: "配额(元)",
+            position: "right",
+            offset: 80,
+            min: 0,
+            axisLine: {
+              show: true,
+              lineStyle: {
+                color: "#98c46d" //y轴线的颜色(若只设置了y轴线的颜色,未设置y轴文字的颜色,则y轴文字会默认跟设置的y轴线颜色一致)
+              }
+            },
+            axisLabel: {
+              formatter: "{value}"
+              // textStyle: {
+              //     color: "#000",//Y轴内容文字颜色
+              // },
+            }
+          }
+        ],
+        series: [
+          {
+            name: "订单数量",
+            type: "bar",
+            yAxisIndex: 0,
+            tooltip: {
+              valueFormatter: function(value) {
+                return value + " 条";
+              }
+            },
+            data: this.numberList3
+          },
+          {
+            name: "订单金额",
+            type: "bar",
+            yAxisIndex: 1,
+            tooltip: {
+              valueFormatter: function(value) {
+                return value + " 元";
+              }
+            },
+            data: this.amountList3
+          },
+          {
+            name: "配额",
+            type: "bar",
+            yAxisIndex: 2,
+            tooltip: {
+              valueFormatter: function(value) {
+                return value + " 元";
+              }
+            },
+            data: this.primaryFundingAmount3
+          }
+        ]
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.xindongpowerBox {
+  box-sizing: border-box;
+}
+
+.statisticsFlex {
+  display: flex;
+  align-items: center;
+
+  .statisticsBox {
+    flex: 1;
+    background: #fff;
+    border-radius: 10px;
+    padding: 10px 30px;
+    box-sizing: border-box;
+    margin-right: 20px;
+    position: relative;
+
+    &:last-child {
+      margin-right: 0;
+    }
+
+    .position {
+      width: 20px;
+      height: 20px;
+      position: absolute;
+      top: 10px;
+      right: 20px;
+    }
+
+    .statisticsTop {
+      display: flex;
+      align-items: center;
+
+      .statisticsTop_ioc {
+        //background: red;
+        width: 60px;
+        height: 60px;
+        margin-right: 20px;
+      }
+
+      .statisticsTop_text {
+        font-size: 12px;
+        font-weight: 300;
+
+        .statisticsTop_amount {
+          font-weight: 500;
+          font-size: 24px;
+        }
+      }
+    }
+
+    .statisticsBottom {
+      color: #1e9fff;
+      margin-top: 20px;
+      font-size: 12px;
+      text-align: center;
+    }
+  }
+}
+
+.quickJumpBox {
+  margin-top: 10px;
+  background: #fff;
+  border-radius: 10px;
+  padding: 20px;
+  box-sizing: border-box;
+
+  .content {
+    display: flex;
+
+    &-icon {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      margin: 1.5vh 1vw 0vh 1vw;
+
+      span {
+        margin-top: 0.2vh;
+      }
+    }
+  }
+}
+
+.echattsBox {
+  background: #fff;
+  border-radius: 10px;
+  padding-bottom: 20px;
+  box-sizing: border-box;
+}
+
+.tradingIcon {
+  font-size: 24px;
+  color: #fff;
+}
+
+.imgbox {
+  width: 100%;
+  height: 100%;
+}
+
+.card-head {
+  margin-top: 5px;
+  height: 28px;
+  font-size: 12px;
+  display: flex;
+  align-items: center;
+}
+
+.index-icon {
+  margin: 0 10px;
+}
+
+.bottomBox {
+  padding: 3px 6px;
+  border-radius: 12px;
+  color: #fff;
+  font-size: 10px;
+}
+
+.iconDivBox {
+  padding: 8px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  border-radius: 10px;
+}
+
+.bottomFlex {
+  display: flex;
+  align-items: center;
+}
+</style>

+ 158 - 398
src/views/overviewAllocation/index.vue

@@ -1,433 +1,193 @@
 <template>
-  <!--青岛鑫动力-->
-  <div>
-    <basic-container>
-      <div class="echattsBox">
-        <div style="display: flex;justify-content: flex-end;">
-          <div>
-            <el-date-picker
-              v-model="annual4"
-              type="year"
-              size="small"
-              placeholder="选择年"
-              value-format="yyyy"
-              style="margin-right:10px;margin-bottom: -20px"
-              @change="commoDity3Datafun"
-            >
-            </el-date-picker>
-          </div>
-          <div>
-            <dic-select
-              v-model="customerName"
-              placeholder="租户"
-              key="id"
-              label="customerName"
-              url="/blade-system/tenant/getFundingCustomerList "
-              :filterable="true"
-              :clearable="false"
-              dataName="customerName"
-              @selectChange="dicChange('customerName', $event)"
-            ></dic-select>
-          </div>
+    <div class="page-content">
+
+        <!-- 1. 顶部筛选区 (蓝色边框) -->
+        <div class="filter-box">
+            <el-form :inline="true" :model="query" size="medium" class="filter-form">
+                <el-form-item>
+                    <el-date-picker
+                        v-model="query.yearMonth"
+                        type="month"
+                        style="width: 200px"
+                        @change="yearMonthChange"
+                        value-format="yyyy-MM"
+                        placeholder="月份">
+                    </el-date-picker>
+                </el-form-item>
+                <el-form-item>
+                    <el-select v-model="query.region" placeholder="区域" style="width: 200px">
+                        <el-option label="华东大区" value="east"></el-option>
+                        <el-option label="华北大区" value="north"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
         </div>
-        <div style="margin: 20px 0;">
-          <div style="display: flex;align-items: center;justify-content: space-around">
-            <div style="width: 100%;">
-              <div class="bottomFlex" style="justify-content: space-around">
-                <div>
-                  <div style="color: #81B337">
-                    <span>订单金额:</span>
-                    <span class="weightnum">¥{{ overviewForm.totalMoney || "0.00" }}元</span>
-                  </div>
-                </div>
-                <div>
-                  <div style="color: #6BBCD1">
-                    <span>配额:</span>
-                    <span class="weightnum">¥{{ overviewForm.fundingAmount || "0.00" }}元</span>
-                  </div>
-                </div>
-                <div>
-                  <div style="color: #808bbd">
-                    <span>保证金:</span>
-                    <span class="weightnum">¥{{ overviewForm.bondAmount || "0.00" }}元</span>
-                  </div>
-                </div>
-                <div>
-                  <div style="color: #b3373f">
-                    <span>还款:</span>
-                    <span class="weightnum">¥{{ overviewForm.repayment || "0.00" }}元</span>
-                  </div>
-                </div>
-                <div style="color: #8dab14">
-                  <span>允许提货金额:</span>
-                  <span>¥{{ overviewForm.amount || "0.00" }}元</span>
-                </div>
-                <div style="color: #f09d68">
-                  <span>资金占用:</span>
-                  <span>¥{{ overviewForm.interest || "0.00" }}元</span>
+
+        <!-- 2. 卡片列表区 -->
+        <!-- gutter="20" 控制左右间距 -->
+        <el-row :gutter="10">
+            <el-col
+                v-for="(item, index) in baseList"
+                :key="index"
+                :xs="24" :sm="12" :md="12" :lg="6" :xl="6"
+            >
+                <!-- 卡片主体 -->
+                <div class="data-card">
+                    <div class="card-header">
+                        {{ item.company }}
+                    </div>
+
+                    <div class="card-content">
+                        <div class="data-box">
+                            <div class="label">门店数量</div>
+                            <div class="value">
+                                <span class="num">{{ item.storeCount }}</span>
+                                <span class="unit">家</span>
+                            </div>
+                        </div>
+                        <div class="data-box">
+                            <div class="label">轮胎月销</div>
+                            <div class="value">
+                                <span class="num">{{ item.sales }}</span>
+                                <span class="unit">条</span>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="card-footer">
+                        <div class="info">当前库存轮胎:{{ item.inventory }}条</div>
+                        <div class="info">销售总额(月):{{ !item.amount ? 0 : item.amount }}元</div>
+                    </div>
                 </div>
-              </div>
-            </div>
-          </div>
-        </div>
-        <div style="height:78vh" id="commoDity3"></div>
-      </div>
-    </basic-container>
-  </div>
+            </el-col>
+        </el-row>
+
+    </div>
 </template>
 
 <script>
-import dicSelect from "@/components/dicSelect/main";
-import indexCard from "@/views/wel/components/card.vue";
-import { columnarRz, realTimeOverview } from "@/api/overviewAllocation/index";
-import { getYearDate } from "@/util/date";
-import { getParamservice } from "@/api/tirePartsMall/purchasingManagement/warehouseEntryOrder";
-import "@/assets/icon/homeicon/iconfont.css";
+import { capitalSummary } from "@/api/erp/allocation";
+
 export default {
-  components: { indexCard, dicSelect },
-  props: {
-    sysType: Number
-  },
-  data() {
-    return {
-      tenantId: "883868",
-      customerName: "黄岛鑫动力",
-      annual4: "", // echatts 时间筛选
-      amountList2: [], // 金额
-      numberList2: [], // 数量
-      amountList3: [], // 金额
-      numberList3: [], // 数量
-      primaryFundingAmount3: [],
-      search: {
-        dateList: [],
-        sort: 1
-      }, // 表格 筛选
-      dingdanzhuangtai: [], // 订单状态
-      orderStatusList: [], // 支付状态
-      saberUserInfo: {}, // 当前登录人数据
-      overviewForm: {},
-      inShow: false
-    };
-  },
-  created() {
-    this.annual4 = getYearDate().toString(); // 获取当前时间
-  },
-  mounted() {
-    this.commoDity3Datafun();
-    realTimeOverview({ year: Number(this.annual4), tenantId: this.tenantId }).then(res => {
-      this.overviewForm = res.data.data;
-    });
-  },
-  methods: {
-    dicChange(name, row) {
-      if (name == "customerName") {
-        this.tenantId = row.customerCode;
-        this.commoDity3Datafun();
-      }
-    },
-    // 排序切换
-    sortfun() {
-      if (this.search.sort == 1) {
-        this.search.sort = 2;
-      } else {
-        this.search.sort = 1;
-      }
-    },
-    // 点击跳转
-    Jumpfun(row) {
-      if (row.type == "FHGD") {
-        this.$router.push({
-          path: "/tirePartsMall/salesManagement/outboundWorkOrder/index",
-          query: { id: row.id }
-        });
-      } else if (row.type == "XS") {
-        this.$router.push({
-          path: "/tirePartsMall/salesManagement/saleOrder/index",
-          query: { jumpId: row.id }
-        });
-      } else if (row.type == "FHRW") {
-        this.$router.push({
-          path: "/tirePartsMall/salesManagement/outboundTask/index"
-        });
-      }
+    data() {
+        return {
+            query: {
+                yearMonth: '',
+                region: ""
+            },
+            baseList: Array(8).fill({
+                company: "青岛鑫动力轮胎有限公司",
+                storeCount: 486,
+                sales: 1235,
+                inventory: 2800,
+                amount: 324
+            })
+        };
     },
-    // 获取echarts 表的数据
-    commoDity3Datafun() {
-      columnarRz({
-        year: Number(this.annual4),
-        tenantId: this.tenantId
-      }).then(res => {
-        this.amountList3 = res.data.data.amount;
-        this.numberList3 = res.data.data.number;
-        this.primaryFundingAmount3 = res.data.data.primaryFundingAmount;
-        this.commoDity3();
-        realTimeOverview({ year: Number(this.annual4), tenantId: this.tenantId }).then(res => {
-          this.overviewForm = res.data.data;
-        });
-      });
+    created() {
+        let nowDate = new Date()
+        this.query.yearMonth = nowDate.getFullYear() + '-' + (nowDate.getMonth() + 1)
+        this.getBaseData();
     },
-    commoDity3() {
-      // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
-      let myChart = this.$echarts.init(document.getElementById("commoDity3"));
-      // 绘制图表
-      myChart.setOption({
-        color: ["#5266bc", "#EE6666", "#98c46d"],
-        tooltip: {
-          trigger: "axis",
-          axisPointer: {
-            type: "cross",
-            label: {
-              precision: "0" // 设备y轴指示线保留整数 文本标签中数值的小数点精度。默认根据当前轴的值自动判断。也可以指定如 2 表示保留两位小数。
-            },
-            crossStyle: {
-              color: "#999"
-            }
-          }
+    methods: {
+        yearMonthChange(val) {
+            console.info("val---", val);
+            this.getBaseData();
         },
-        toolbox: {},
-        legend: {
-          data: ["订单数量", "订单金额", "配额"]
-        },
-        xAxis: [
-          {
-            type: "category",
-            data: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
-            axisPointer: {
-              type: "shadow"
-            }
-          }
-        ],
-        grid: {
-          left: "10%",
-          right: "10%",
-          bottom: "3%",
-          containLabel: true
-        },
-        yAxis: [
-          {
-            type: "value",
-            name: "订单数量(条)",
-            position: "left",
-            min: 0,
-            axisLine: {
-              show: true,
-              lineStyle: {
-                color: "#5266bc" //y轴线的颜色(若只设置了y轴线的颜色,未设置y轴文字的颜色,则y轴文字会默认跟设置的y轴线颜色一致)
-              }
-            },
-            axisLabel: {
-              formatter: "{value}"
-            }
-          },
-          {
-            type: "value",
-            name: "订单金额(元)",
-            position: "right",
-            min: 0,
-            axisLine: {
-              show: true,
-              lineStyle: {
-                color: "#EE6666" //y轴线的颜色(若只设置了y轴线的颜色,未设置y轴文字的颜色,则y轴文字会默认跟设置的y轴线颜色一致)
-              }
-            },
-            axisLabel: {
-              formatter: "{value}"
-              // textStyle: {
-              //     color: "#000",//Y轴内容文字颜色
-              // },
-            }
-          },
-          {
-            type: "value",
-            name: "配额(元)",
-            position: "right",
-            offset: 80,
-            min: 0,
-            axisLine: {
-              show: true,
-              lineStyle: {
-                color: "#98c46d" //y轴线的颜色(若只设置了y轴线的颜色,未设置y轴文字的颜色,则y轴文字会默认跟设置的y轴线颜色一致)
-              }
-            },
-            axisLabel: {
-              formatter: "{value}"
-              // textStyle: {
-              //     color: "#000",//Y轴内容文字颜色
-              // },
-            }
-          }
-        ],
-        series: [
-          {
-            name: "订单数量",
-            type: "bar",
-            yAxisIndex: 0,
-            tooltip: {
-              valueFormatter: function(value) {
-                return value + " 条";
-              }
-            },
-            data: this.numberList3
-          },
-          {
-            name: "订单金额",
-            type: "bar",
-            yAxisIndex: 1,
-            tooltip: {
-              valueFormatter: function(value) {
-                return value + " 元";
-              }
-            },
-            data: this.amountList3
-          },
-          {
-            name: "配额",
-            type: "bar",
-            yAxisIndex: 2,
-            tooltip: {
-              valueFormatter: function(value) {
-                return value + " 元";
-              }
-            },
-            data: this.primaryFundingAmount3
-          }
-        ]
-      });
+        getBaseData() {
+            capitalSummary(this.query).then(res => {
+                this.baseList = res.data.data;
+            });
+        }
     }
-  }
 };
 </script>
 
 <style lang="scss" scoped>
-.xindongpowerBox {
-  box-sizing: border-box;
+.page-content {
+    padding: 20px;
+    background-color: #f5f7fa; /* 确保有背景色,不然看不出白色卡片的间隔 */
+    min-height: 100vh;
 }
 
-.statisticsFlex {
-  display: flex;
-  align-items: center;
-
-  .statisticsBox {
-    flex: 1;
+.filter-box {
     background: #fff;
-    border-radius: 10px;
-    padding: 10px 30px;
-    box-sizing: border-box;
-    margin-right: 20px;
-    position: relative;
-
-    &:last-child {
-      margin-right: 0;
-    }
-
-    .position {
-      width: 20px;
-      height: 20px;
-      position: absolute;
-      top: 10px;
-      right: 20px;
+    border: 1px solid #409EFF;
+    padding: 20px 20px 0 20px;
+    margin-bottom: 30px; /* 筛选框和下方卡片的间距 */
+    border-radius: 4px;
+
+    .el-form-item {
+        margin-bottom: 20px;
+        margin-right: 40px;
     }
+}
 
-    .statisticsTop {
-      display: flex;
-      align-items: center;
+/* --- 卡片样式核心 --- */
+.data-card {
+    background: #fff;
+    border-radius: 8px;
+    padding: 24px 20px;
 
-      .statisticsTop_ioc {
-        //background: red;
-        width: 60px;
-        height: 60px;
-        margin-right: 20px;
-      }
+    /* 【这里是关键】控制卡片换行后的上下间距 */
+    margin-bottom: 10px;
 
-      .statisticsTop_text {
-        font-size: 12px;
-        font-weight: 300;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
+    transition: all 0.3s;
 
-        .statisticsTop_amount {
-          font-weight: 500;
-          font-size: 24px;
-        }
-      }
+    /* 鼠标悬停效果 */
+    &:hover {
+        transform: translateY(-3px);
+        box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.12);
     }
 
-    .statisticsBottom {
-      color: #1e9fff;
-      margin-top: 20px;
-      font-size: 12px;
-      text-align: center;
+    .card-header {
+        text-align: center;
+        font-size: 16px;
+        color: #333;
+        font-weight: 500;
+        margin-bottom: 25px;
     }
-  }
-}
 
-.quickJumpBox {
-  margin-top: 10px;
-  background: #fff;
-  border-radius: 10px;
-  padding: 20px;
-  box-sizing: border-box;
+    .card-content {
+        display: flex;
+        justify-content: space-between;
+        margin-bottom: 25px;
+        padding: 0 10px;
+
+        .data-box {
+            .label {
+                font-size: 14px;
+                color: #666;
+                margin-bottom: 8px;
+            }
 
-  .content {
-    display: flex;
+            .value {
+                color: #409EFF;
 
-    &-icon {
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      margin: 1.5vh 1vw 0vh 1vw;
+                .num {
+                    font-size: 34px;
+                    font-weight: bold;
+                    font-family: Arial, sans-serif;
+                }
 
-      span {
-        margin-top: 0.2vh;
-      }
+                .unit {
+                    font-size: 14px;
+                    margin-left: 4px;
+                }
+            }
+        }
     }
-  }
-}
-
-.echattsBox {
-  background: #fff;
-  border-radius: 10px;
-  padding-bottom: 20px;
-  box-sizing: border-box;
-}
-
-.tradingIcon {
-  font-size: 24px;
-  color: #fff;
-}
-
-.imgbox {
-  width: 100%;
-  height: 100%;
-}
-
-.card-head {
-  margin-top: 5px;
-  height: 28px;
-  font-size: 12px;
-  display: flex;
-  align-items: center;
-}
 
-.index-icon {
-  margin: 0 10px;
-}
-
-.bottomBox {
-  padding: 3px 6px;
-  border-radius: 12px;
-  color: #fff;
-  font-size: 10px;
-}
+    .card-footer {
+        display: flex;
+        justify-content: space-between;
+        padding-top: 10px;
 
-.iconDivBox {
-  padding: 8px;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  border-radius: 10px;
-}
-
-.bottomFlex {
-  display: flex;
-  align-items: center;
+        .info {
+            font-size: 13px;
+            color: #666;
+        }
+    }
 }
 </style>