فهرست منبع

add:控制台部分完善暂存

Tang 3 سال پیش
والد
کامیت
ded598a274

+ 31 - 21
public/index.html

@@ -1,14 +1,19 @@
 <!DOCTYPE html>
 <html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="renderer" content="webkit">
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
-    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title><%= webpackConfig.name %></title>
-    <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
-	  <style>
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="renderer" content="webkit">
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+  <title>
+    <%= webpackConfig.name %>
+  </title>
+  <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
+
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.4/gsap.min.js"></script>
+  <style>
     html,
     body,
     #app {
@@ -16,6 +21,7 @@
       margin: 0px;
       padding: 0px;
     }
+
     .chromeframe {
       margin: 0.2em 0;
       background: #ccc;
@@ -92,6 +98,7 @@
         -ms-transform: rotate(0deg);
         transform: rotate(0deg);
       }
+
       100% {
         -webkit-transform: rotate(360deg);
         -ms-transform: rotate(360deg);
@@ -105,6 +112,7 @@
         -ms-transform: rotate(0deg);
         transform: rotate(0deg);
       }
+
       100% {
         -webkit-transform: rotate(360deg);
         -ms-transform: rotate(360deg);
@@ -194,15 +202,17 @@
       opacity: 0.5;
     }
   </style>
-  </head>
-  <body>
-    <div id="app">
-	    <div id="loader-wrapper">
-		    <div id="loader"></div>
-		    <div class="loader-section section-left"></div>
-		    <div class="loader-section section-right"></div>
-		    <div class="load_title">正在加载系统资源,请耐心等待</div>
-        </div>
-	</div>
-  </body>
-</html>
+</head>
+
+<body>
+  <div id="app">
+    <div id="loader-wrapper">
+      <div id="loader"></div>
+      <div class="loader-section section-left"></div>
+      <div class="loader-section section-right"></div>
+      <div class="load_title">正在加载系统资源,请耐心等待</div>
+    </div>
+  </div>
+</body>
+
+</html>

+ 2 - 0
src/api/api.js

@@ -96,6 +96,7 @@ import orderConfigBusiness from '../newApi/orderConfigBusiness'//配置详情
 import newOrder from '../newApi/newOrder'//录单管理
 import refund from '../newApi/refund'//退费管理
 import activityRecommend from '../newApi/activityRecommend'//商品推荐管理
+import homeApi from '../newApi/homeApi'//控制台学员数据
 
 
 
@@ -173,6 +174,7 @@ export default {
     ...newOrder,
     ...refund,
     ...activityRecommend,
+    ...homeApi,
 
     // ...login,
     // ...profession,

BIN
src/assets/index_images/sl1.png


BIN
src/assets/index_images/sl10.png


BIN
src/assets/index_images/sl11.png


BIN
src/assets/index_images/sl2.png


BIN
src/assets/index_images/sl3.png


BIN
src/assets/index_images/sl4.png


BIN
src/assets/index_images/sl5.png


BIN
src/assets/index_images/sl6.png


BIN
src/assets/index_images/sl7.png


BIN
src/assets/index_images/sl8.png


BIN
src/assets/index_images/sl9.png


+ 27 - 0
src/newApi/homeApi.js

@@ -0,0 +1,27 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //控制台学员数据
+    baseconsolestudentData(data) {
+        return request({
+            url: '/base/console/studentData',
+            method: 'get',
+            params: data
+        })
+    },
+    //控制台订单数据
+    baseconsoleorderData(data) {
+        return request({
+            url: '/base/console/orderData',
+            method: 'get',
+            params: data
+        })
+    },
+    //控制台班级数据
+    baseconsolegradeData(data) {
+        return request({
+            url: '/base/console/gradeData',
+            method: 'get',
+            params: data
+        })
+    },
+}

+ 2 - 2
src/utils/request.js

@@ -7,8 +7,8 @@ import methods from '@/utils/methodsTool';
 
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 // 创建axios实例
-export const baseURL = process.env.VUE_APP_BASE_API
-// export const baseURL = 'http://192.168.1.24:5030/'
+// export const baseURL = process.env.VUE_APP_BASE_API
+export const baseURL = 'http://192.168.1.24:5030/'
 export const BASE_IMG_URL = process.env.VUE_APP_IMG_API
 const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分

+ 1208 - 202
src/views/index.vue

@@ -1,248 +1,1254 @@
 <template>
   <div id="index">
-    <el-row>
-      <el-col :span="18">
-        <el-row>
-          <el-col>
-            <div class="costsBox">
-              <div class="top_style">
-                <i class="left_icon"></i>
-                <strong>筛选条件</strong>
-              </div>
-              <div>
-                <div class="dis_flex">
-                  <span class="label_style">教育类型:</span>
-                  <ul class="topul_sty">
-                    <li
-                      class="topFloat_sty"
-                      v-for="(item, index) in educationType"
-                      :key="index"
-                      @click="activeEdu(item.id)"
-                      :class="activeEduId === item.id ? 'activeStyle' : ''"
-                    >
-                      {{ item.educationName }}
-                    </li>
-                    <div style="clear: both"></div>
-                  </ul>
-                </div>
-                <div class="dis_flex">
-                  <span class="label_style">业务层次:</span>
-                  <ul class="topul_sty">
-                    <li
-                      class="topFloat_sty"
-                      v-for="(item, index) in businList"
-                      :key="index"
-                      @click="activeBus(item.id)"
-                      :class="activeBusId === item.id ? 'activeStyle' : ''"
-                    >
-                      {{ item.businessName }}
-                    </li>
-                    <div style="clear: both"></div>
-                  </ul>
-                </div>
-              </div>
-            </div>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="6">
-            <div class="costsBox">
-              <div class="top_style">
-                <i class="left_icon"></i>
-                <strong>学员数量</strong>
-              </div>
-              <div>
-                <div class="NumBox">
-                  <i>当前累计人数:</i>
-                  <span>49083949</span>
-                </div>
-                <div class="NumBox">
-                  <i>昨日新增人数:</i>
-                  <span>95984</span>
-                </div>
-              </div>
-            </div></el-col
-          >
-          <el-col :span="18">
-            <div class="costsBox">
-              <div class="top_style">
-                <i class="left_icon"></i>
-                <strong>学员资料修改动态</strong>
-              </div>
-              <div>
-                <div>
-                  今日修改:<span style="color: rgb(217, 0, 27)">50</span
-                  ><el-divider direction="vertical"></el-divider>
-                  昨日修改:<span style="color: rgb(217, 0, 27)">50</span
-                  ><el-divider direction="vertical"></el-divider>
-                  近7日修改:<span style="color: rgb(217, 0, 27)">50</span>
-                </div>
-                <div>xxxxxx</div>
-                <div>xxxxxx</div>
-              </div>
-            </div></el-col
+    <p class="TopSystem">
+      {{ user.userName }},欢迎您使用本系统<span style="margin-left: 20px"
+        >本次登录的时间:{{ changeDateTime(user.loginDate) }}</span
+      >
+      <span style="margin-left: 14px"
+        >您上次登录的时间:{{ changeDateTime(user.preLoginDate) }}</span
+      >
+    </p>
+    <div>
+      <ul class="style_ul">
+        <li
+          class="style_btn"
+          v-for="(item, index) in educationType"
+          :key="index"
+          :class="activeEduId === item.id ? 'style_btn_active' : ''"
+          @click="activeEduId = item.id"
+        >
+          {{ item.educationName }}
+        </li>
+        <div style="clear: both"></div>
+      </ul>
+      <ul class="style_ul">
+        <li
+          class="style_btn"
+          v-for="(item, index) in businessList"
+          :key="index"
+          :class="activeBusId === item.id ? 'style_btn_active' : ''"
+          @click="activeBusId = item.id"
+        >
+          {{ item.projectName + " - " + item.businessName }}
+        </li>
+        <div style="clear: both"></div>
+      </ul>
+    </div>
+    <div class="style_div">
+      <div class="flex_boxs dy_sty1">
+        <p><span>学员数量</span></p>
+        <div class="style_box flex1">
+          <p class="p1">当前累计人数</p>
+          <p class="p2">{{ uploadAnimalData.allStudent.toFixed(0) }}</p>
+          <div class="foot_numbox">
+            <span class="span1">昨日新增人数</span>
+            <span class="span2">{{
+              studentInfomModification.ytdStudent
+                ? studentInfomModification.ytdStudent
+                : 0
+            }}</span>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty2">
+        <p>
+          <span>学员资料修改动态</span><span class="watch_all">查看全部</span>
+        </p>
+        <div class="style_box flex2">
+          <div class="flex2_top_box">
+            <div class="flex2_label">
+              <div class="top">今日修改</div>
+              <div class="nums">
+                {{
+                  studentInfomModification.todUpdateNum
+                    ? studentInfomModification.todUpdateNum
+                    : 0
+                }}
+              </div>
+            </div>
+            <div class="flex2_label">
+              <div class="top">昨日修改</div>
+              <div class="nums">
+                {{
+                  studentInfomModification.ytdUpdateNum
+                    ? studentInfomModification.ytdUpdateNum
+                    : 0
+                }}
+              </div>
+            </div>
+            <div class="flex2_label">
+              <div class="top">近7日修改</div>
+              <div class="nums">
+                {{
+                  studentInfomModification.sevenUpdateNum
+                    ? studentInfomModification.sevenUpdateNum
+                    : 0
+                }}
+              </div>
+            </div>
+          </div>
+          <ul class="flex2_footer">
+            <li
+              v-for="(item, index) in studentInfomModification.lastUpdateList"
+              :key="index"
+              style="font-size: 14px; margin-bottom: 10px; color: #666666"
+            >
+              <i class="el-icon-s-custom"></i>
+              学员<span style="color: #fa541c">【{{ item.nowRealname }}】</span>
+              ,<span style="color: #fa541c"
+                >【{{ $methodsTools.onlyForma(item.createTime) }}】</span
+              >
+              修改了<span style="color: #fa541c"
+                >【{{ item.realname ? "姓名" : ""
+                }}{{ item.idCard ? "身份证" : ""
+                }}{{ item.telphone ? "手机号码" : "" }}】</span
+              >
+              ,如涉及上报注册中心数据,请及时处理。
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="style_div">
+      <div class="flex_boxs dy_sty3">
+        <p><span>订单数量</span></p>
+        <div class="style_box flex1">
+          <p class="p1">当前累计数量</p>
+          <p class="p2">{{ uploadAnimalData.allNum.toFixed(0) }}</p>
+          <div class="foot_list_box">
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl1.png" alt="" /> 线上订单
+              </div>
+              <div class="aNumbox">
+                <span class="span1">视频商品</span>
+                <span class="span2">{{
+                  orderconsoledData.allOnVideoNum
+                    ? orderconsoledData.allOnVideoNum
+                    : 0
+                }}</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">题库商品</span>
+                <span class="span2">{{
+                  orderconsoledData.allOnBankNum
+                    ? orderconsoledData.allOnBankNum
+                    : 0
+                }}</span>
+              </div>
+            </div>
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl2.png" alt="" />线下订单
+              </div>
+              <div class="aNumbox">
+                <span class="span1">视频商品</span>
+                <span class="span2">{{
+                  orderconsoledData.allOffVideoNum
+                    ? orderconsoledData.allOffVideoNum
+                    : 0
+                }}</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">题库商品</span>
+                <span class="span2">{{
+                  orderconsoledData.allOffBankNum
+                    ? orderconsoledData.allOffBankNum
+                    : 0
+                }}</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty3">
+        <p><span>今日订单数量</span></p>
+        <div class="style_box flex1">
+          <p class="p1">当前累计数量</p>
+          <p class="p2">{{ uploadAnimalData.todNum.toFixed(0) }}</p>
+          <div class="foot_list_box">
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl1.png" alt="" /> 线上订单
+              </div>
+              <div class="aNumbox">
+                <span class="span1">视频商品</span>
+                <span class="span2">{{
+                  orderconsoledData.todOnVideoNum
+                    ? orderconsoledData.todOnVideoNum
+                    : 0
+                }}</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">题库商品</span>
+                <span class="span2">{{
+                  orderconsoledData.todOnBankNum
+                    ? orderconsoledData.todOnBankNum
+                    : 0
+                }}</span>
+              </div>
+            </div>
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl2.png" alt="" />线下订单
+              </div>
+              <div class="aNumbox">
+                <span class="span1">视频商品</span>
+                <span class="span2">{{
+                  orderconsoledData.todOffVideoNum
+                    ? orderconsoledData.todOffVideoNum
+                    : 0
+                }}</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">题库商品</span>
+                <span class="span2">{{
+                  orderconsoledData.todOffBankNum
+                    ? orderconsoledData.todOffBankNum
+                    : 0
+                }}</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty3">
+        <p><span>昨日订单数量</span></p>
+        <div class="style_box flex1">
+          <p class="p1">当前累计数量</p>
+          <p class="p2">{{ uploadAnimalData.ytdNum.toFixed(0) }}</p>
+          <div class="foot_list_box">
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl1.png" alt="" /> 线上订单
+              </div>
+              <div class="aNumbox">
+                <span class="span1">视频商品</span>
+                <span class="span2">{{
+                  orderconsoledData.ytdOnVideoNum
+                    ? orderconsoledData.ytdOnVideoNum
+                    : 0
+                }}</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">题库商品</span>
+                <span class="span2">{{
+                  orderconsoledData.ytdOnBankNum
+                    ? orderconsoledData.ytdOnBankNum
+                    : 0
+                }}</span>
+              </div>
+            </div>
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl2.png" alt="" />线下订单
+              </div>
+              <div class="aNumbox">
+                <span class="span1">视频商品</span>
+                <span class="span2">{{
+                  orderconsoledData.ytdOffVideoNum
+                    ? orderconsoledData.ytdOffVideoNum
+                    : 0
+                }}</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">题库商品</span>
+                <span class="span2">{{
+                  orderconsoledData.ytdOffBankNum
+                    ? orderconsoledData.ytdOffBankNum
+                    : 0
+                }}</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty3" style="margin-right: 0px !important">
+        <p><span>视频商品:订单学时冲突</span></p>
+        <div class="style_box flex3">
+          <div class="flex3_1">
+            <div class="flex3_children" style="margin-right: 16px">
+              <div class="top_label">当前累计数量</div>
+              <div class="nums">
+                {{ uploadAnimalData.allRebuyNum.toFixed(0) }}
+              </div>
+            </div>
+            <div class="flex3_children">
+              <div class="top_label">今日数量</div>
+              <div class="nums">
+                {{ uploadAnimalData.todRebuyNum.toFixed(0) }}
+              </div>
+            </div>
+          </div>
+          <div class="flex3_2">
+            <div class="flex3_children" style="margin-right: 16px">
+              <div class="top_label">昨日数量</div>
+              <div class="nums">
+                {{ uploadAnimalData.ytdRebuyNum.toFixed(0) }}
+              </div>
+            </div>
+            <div class="flex3_children">
+              <div class="top_label">近7日数量</div>
+              <div class="nums">
+                {{ uploadAnimalData.sevenRebuyNum.toFixed(0) }}
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="style_div">
+      <div class="flex_boxs dy_sty3">
+        <p>班级数量</p>
+        <div class="style_box_tran">
+          <div class="imgIBx imgUrl1 imgSize">
+            <p class="p1">当前累计数量</p>
+            <p class="p2">{{ uploadAnimalData.allNumClass.toFixed(0) }}</p>
+          </div>
+          <div class="li_s">
+            <div class="li_s_child">
+              <span class="li_s_child_left">今日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.todOpenNum
+              }}</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">昨日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.todPreNum
+              }}</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">近7日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.sevNum
+              }}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty3">
+        <p class="tranSty">xxx</p>
+        <div class="style_box_tran">
+          <div class="imgIBx imgUrl2 imgSize">
+            <p class="p1">已开班</p>
+            <p class="p2">{{ uploadAnimalData.allOpenNumClass.toFixed(0) }}</p>
+          </div>
+          <div class="li_s">
+            <div class="li_s_child">
+              <span class="li_s_child_left">今日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.todOpenNum
+              }}</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">昨日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.ytdOpenNum
+              }}</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">近7日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.sevOpenNum
+              }}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty3">
+        <p class="tranSty">xxx</p>
+        <div class="style_box_tran">
+          <div class="imgIBx imgUrl3 imgSize">
+            <p class="p1">预报名</p>
+            <p class="p2">{{ uploadAnimalData.allPreNumClass.toFixed(0) }}</p>
+          </div>
+          <div class="li_s">
+            <div class="li_s_child">
+              <span class="li_s_child_left">今日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.todPreNum
+              }}</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">昨日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.ytdPreNum
+              }}</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">近7日新增</span
+              ><span class="li_s_child_right">{{
+                classconsoleData.sevPreNum
+              }}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty3" style="margin-right: 0px !important">
+        <p><span>学习账号标记</span><span class="watch_all">查看全部</span></p>
+        <div class="style_box flex1">
+          <div class="foot_box" style="margin-bottom: 16px">
+            <div class="foot_box_list" style="margin-right: 16px; height: 64px">
+              <div class="top_label">不通过数量</div>
+              <div class="nums_mini">839</div>
+            </div>
+            <div class="foot_box_list" style="margin-right: 16px; height: 64px">
+              <div class="top_label">不通过数量</div>
+              <div class="nums_mini">839</div>
+            </div>
+            <div class="foot_box_list" style="height: 64px">
+              <div class="top_label">通过数量</div>
+              <div class="nums_mini">839</div>
+            </div>
+          </div>
+          <div class="foot_list_box" style="align-items: flex-start">
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl8.png" alt="" /> 账号开通标记
+              </div>
+              <div class="aNumbox" style="margin-bottom: 13px">
+                <span class="span1">未开通</span>
+                <span class="span3">12</span>
+              </div>
+              <div class="aNumbox" style="margin-bottom: 13px">
+                <span class="span1">已开通</span>
+                <span class="span3">23</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">标记失败</span>
+                <span class="span3">34</span>
+              </div>
+            </div>
+            <div class="foot_list_style" style="align-items: flex-start">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl9.png" alt="" />学完标记
+              </div>
+              <div class="aNumbox" style="margin-bottom: 13px">
+                <span class="span1">未开通</span>
+                <span class="span3">54</span>
+              </div>
+              <div class="aNumbox" style="margin-bottom: 13px">
+                <span class="span1">已开通</span>
+                <span class="span3">84</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="style_div">
+      <div class="flex_boxs dy_sty4">
+        <p>填写资料审核</p>
+        <div class="style_box flex1">
+          <p class="p1">待审数量</p>
+          <p class="p3">83949</p>
+          <div class="foot_box">
+            <div class="foot_box_list" style="margin-right: 16px">
+              <div class="top_label">不通过数量</div>
+              <div class="nums">839</div>
+            </div>
+            <div class="foot_box_list">
+              <div class="top_label">通过数量</div>
+              <div class="nums">839</div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty4">
+        <p>学时审核</p>
+        <div class="style_box_tran_yellow">
+          <div class="imgIBx imgUrl4 imgSize">
+            <p class="p1">待初审</p>
+            <p class="p2">1564</p>
+          </div>
+          <div class="li_s">
+            <div class="li_s_child">
+              <span class="li_s_child_left">今日新增</span
+              ><span class="li_s_child_right">50</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">昨日新增</span
+              ><span class="li_s_child_right">59</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">近7日新增</span
+              ><span class="li_s_child_right">49</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty4">
+        <p class="tranSty">xxx</p>
+
+        <div class="style_box_tran_yellow">
+          <div class="imgIBx imgUrl5 imgSize">
+            <p class="p1">待复审</p>
+            <p class="p2">1564</p>
+          </div>
+          <div class="li_s">
+            <div class="li_s_child">
+              <span class="li_s_child_left">今日新增</span
+              ><span class="li_s_child_right">50</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">昨日新增</span
+              ><span class="li_s_child_right">59</span>
+            </div>
+            <div class="li_s_child">
+              <span class="li_s_child_left">近7日新增</span
+              ><span class="li_s_child_right">49</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty4" style="margin-right: 0px !important">
+        <p><span>学员推送数据</span><span class="watch_all">查看全部</span></p>
+        <div class="style_box flex1">
+          <div class="foot_box" style="margin-bottom: 16px">
+            <div class="foot_box_list" style="margin-right: 16px; height: 64px">
+              <div class="top_label">未配置报名接口班级</div>
+              <div class="nums_mini">839</div>
+            </div>
+            <div class="foot_box_list" style="height: 64px">
+              <div class="top_label">有配置报名接口班级</div>
+              <div class="nums_mini">839</div>
+            </div>
+          </div>
+          <div class="foot_box" style="margin-bottom: 16px">
+            <div class="foot_box_list" style="margin-right: 16px; height: 64px">
+              <div class="top_label">未配置学时接口班级</div>
+              <div class="nums_mini">839</div>
+            </div>
+            <div class="foot_box_list" style="height: 64px">
+              <div class="top_label">有配置学时接口班级</div>
+              <div class="nums_mini">839</div>
+            </div>
+          </div>
+          <div class="foot_list_box" style="align-items: flex-start">
+            <div class="foot_list_style">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl10.png" alt="" /> 报名推送
+              </div>
+              <div class="aNumbox" style="margin-bottom: 13px">
+                <span class="span1">报名人数</span>
+                <span class="span3">12</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">已推送人数</span>
+                <span class="span3">23</span>
+              </div>
+            </div>
+            <div class="foot_list_style" style="align-items: flex-start">
+              <div class="aNumTopTitle">
+                <img src="@/assets/index_images/sl11.png" alt="" />学时推送
+              </div>
+              <div class="aNumbox" style="margin-bottom: 13px">
+                <span class="span1">学时审核通过人数</span>
+                <span class="span3">54</span>
+              </div>
+              <div class="aNumbox">
+                <span class="span1">已推送人数</span>
+                <span class="span3">84</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="style_div" style="align-items: flex-start">
+      <div class="flex_boxs dy_sty2" style="margin-right: 13px; height: auto">
+        <p><span>考试数据</span><span class="watch_all">查看全部</span></p>
+        <div class="style_box">
+          <el-table
+            :data="tableData"
+            style="width: 100%"
+            :header-cell-style="{
+              'background-color': '#E6FFFB',
+              color: '#13C2C2',
+              fontSize: '14px',
+            }"
+            :row-class-name="tableRowClassName"
           >
-        </el-row>
-        <el-row>
-          <el-col :span="6">
-            <div class="costsBox">
-              <div class="top_style">
-                <i class="left_icon"></i>
-                <strong>订单数量</strong>
-              </div>
-              <div>
-                <div class="NumBox">
-                  <i>当前累计人数:</i>
-                  <span>49083949</span>
-                </div>
-                <div class="NumBox">
-                  <i>昨日新增人数:</i>
-                  <span>95984</span>
-                </div>
-              </div>
-            </div></el-col
+            <el-table-column
+              v-for="(item, index) in tableSet"
+              :key="index"
+              :prop="item.prop"
+              :label="item.label"
+              :width="item.width"
+            >
+              <template slot-scope="scope">
+                <span>{{ scope.row[item.prop] }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="flex_boxs dy_sty2" style="height: auto">
+        <p><span>模考数据</span><span class="watch_all">查看全部</span></p>
+        <div class="style_box">
+          <el-table
+            :data="tableData_MN"
+            style="width: 100%"
+            :header-cell-style="{
+              'background-color': '#E6FFFB',
+              color: '#13C2C2',
+              fontSize: '14px',
+            }"
+            :row-class-name="tableRowClassName"
           >
-          <el-col :span="6">
-            <div class="costsBox">
-              <div class="top_style">
-                <i class="left_icon"></i>
-                <strong>今日订单数量</strong>
-              </div>
-              <div>
-                <div class="NumBox">
-                  <i>当前累计人数:</i>
-                  <span>49083949</span>
-                </div>
-                <div class="NumBox">
-                  <i>昨日新增人数:</i>
-                  <span>95984</span>
-                </div>
-              </div>
-            </div></el-col
-          ></el-row
-        >
-      </el-col>
-      <el-col :span="6">
-        <div class="costsBox">
-          <div class="top_style">
-            <i class="left_icon"></i>
-            <strong>用户信息</strong>
-          </div>
-          <div>
-            <ul class="ul_style_right">
-              <li>管理员:李大米</li>
-              <li>本次登录的时间:2022/4/4 13:38:22</li>
-              <li>您上次登录的时间:2022/4/1 13:38:22</li>
-            </ul>
-          </div>
-        </div>
-      </el-col>
-    </el-row>
+            <el-table-column
+              v-for="(item, index) in tableSet"
+              :key="index"
+              :prop="item.prop"
+              :label="item.label"
+              :width="item.width"
+            >
+              <template slot-scope="scope">
+                <span>{{ scope.row[item.prop] }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </div>
   </div>
 </template>
-
 <script>
+import { getInfo } from "@/api/login";
 import { mapGetters } from "vuex";
 export default {
   name: "Index",
   data() {
     return {
-      businList: [],
       activeEduId: "",
+      businessList: [],
       activeBusId: "",
+      tableSet: [
+        {
+          label: "类别",
+          prop: "name",
+        },
+        {
+          label: "今日",
+          prop: "label",
+        },
+        {
+          label: "昨日",
+          prop: "label",
+        },
+        {
+          label: "近7日",
+          prop: "label",
+        },
+        {
+          label: "累计",
+          prop: "label",
+        },
+      ],
+      tableData: [
+        {
+          name: "考试预约",
+          label: "123",
+        },
+        {
+          name: "考试预约",
+          label: "123",
+        },
+        {
+          name: "考试预约",
+          label: "123",
+        },
+      ],
+      tableData_MN: [
+        {
+          name: "考试预约",
+          label: "123",
+        },
+        {
+          name: "考试预约",
+          label: "123",
+        },
+      ],
+      num1: 0,
+      studentInfomModification: {}, //学员资料修改动态
+      orderconsoledData: {},
+      classconsoleData: {},
+      uploadAnimalData: {
+        allStudent: 0, //当前累计人数
+        allNum: 0,
+        todNum: 0,
+        ytdNum: 0,
+        allRebuyNum: 0,
+        todRebuyNum: 0,
+        ytdRebuyNum: 0,
+        sevenRebuyNum: 0,
+        allNumClass: 0,
+        allOpenNumClass: 0,
+        allPreNumClass: 0,
+      }, //需要动画滚动的数值
+      user: {},
     };
   },
-  computed: { ...mapGetters(["educationType"]) },
-  methods: {
-    activeEdu(id) {
-      this.activeEduId = id;
-      this.getBusinList(id);
-    },
-    activeBus(id) {
-      this.activeBusId = id;
+  watch: {
+    educationType(val) {
+      if (val.length > 0) {
+        this.activeEduId = val[0].id;
+      }
     },
-    getBusinList(id) {
+    activeEduId(val) {
       this.$api
-        .inquirebusinessList({ status: 1, educationId: id })
+        .inquirebusinessList({ status: 1, educationId: val })
         .then((res) => {
-          this.businList = res.rows;
+          if (res.rows.length > 0) {
+            this.activeBusId = res.rows[0].id;
+          }
+          this.businessList = res.rows;
         });
     },
+    activeBusId(val) {
+      this.getBusUploadData(val);
+      console.log("busId:", val);
+    },
+    "studentInfomModification.allStudent"(val) {
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        allStudent: val,
+      });
+    },
+    orderconsoledData(val) {
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        allNum: val.allNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        todNum: val.todNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        ytdNum: val.ytdNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        allRebuyNum: val.allRebuyNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        todRebuyNum: val.todRebuyNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        ytdRebuyNum: val.ytdRebuyNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        sevenRebuyNum: val.sevenRebuyNum,
+      });
+    },
+    classconsoleData(val) {
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        allNumClass: val.allNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        allPreNumClass: val.allOpenNum,
+      });
+      gsap.to(this.$data.uploadAnimalData, {
+        duration: 0.5,
+        allOpenNumClass: val.allPreNum,
+      });
+    },
+  },
+  computed: {
+    ...mapGetters(["educationType", ""]),
+    changeDateTime: function () {
+      return function (date) {
+        if (date) {
+          let da = this.$methodsTools.onlyForma(
+            new Date(date).getTime() / 1000
+          );
+          return da;
+        } else {
+          return "没有记录";
+        }
+      };
+    },
+  },
+  created() {
+    getInfo().then((res) => {
+      this.user = res.data.user;
+    });
+  },
+  methods: {
+    /**
+     * 表格颜色
+     */
+    tableRowClassName({ row, rowIndex }) {
+      if (rowIndex % 2 == 0) {
+        return "";
+      }
+      return "success-row";
+    },
+    /**
+     * 初始获取数据
+     */
+    getBusUploadData(id) {
+      this.$api.baseconsolestudentData({ businessId: id }).then((res) => {
+        this.studentInfomModification = res.data;
+      });
+      this.$api.baseconsoleorderData({ businessId: id }).then((res) => {
+        this.orderconsoledData = res.data;
+      });
+      this.$api.baseconsolegradeData({ businessId: id }).then((res) => {
+        this.classconsoleData = res.data;
+      });
+    },
   },
 };
 </script>
 
 <style lang="less" scoped>
-#index {
+.TopSystem {
+  margin: 0px;
   font-size: 14px;
-  font-family: PingFang-SC-Bold, PingFang-SC;
+  font-weight: 400;
+  color: #999999;
+}
+.style_ul {
+  .style_btn {
+    float: left;
+    background-color: #e6f2ff;
+    box-shadow: 2px 2px 6px 0px rgba(217, 217, 217, 0.5);
+    padding: 0px 16px;
+    border-radius: 4px;
+    height: 40px;
+    line-height: 40px;
+    margin: 0px 16px 16px 0px;
+    font-size: 14px;
+    font-weight: 400;
+    color: #666666;
+    user-select: none;
+    transition: all 0.1s;
+    cursor: pointer;
+    &:hover {
+      background-color: #0c5dfb;
+      color: #fff;
+    }
+  }
+  .style_btn_active {
+    background-color: #0c5dfb !important;
+    color: #fff !important;
+  }
 }
-.costsBox {
-  margin-right: 18px;
-  padding: 6px 17px 14px;
-  background-color: #fff;
-  border-radius: 5px;
-  box-shadow: 1px 1px 10px 3px rgba(0, 0, 0, 0.1);
-  margin-bottom: 18px;
-  .top_style {
+.style_div {
+  margin-bottom: 16px;
+  display: flex;
+  align-items: center;
+  .flex_boxs {
     display: flex;
-    align-items: center;
-    padding: 8px 0px;
-    border-bottom: 1px solid #e5e5e5;
-    margin-bottom: 10px;
-    .left_icon {
-      display: inline-block;
-      width: 4px;
-      height: 16px;
-      background: #409eff;
-      margin-right: 6px;
+    flex-direction: column;
+    & > p {
+      margin: 0px 0px 16px 0px;
+      flex-shrink: 0;
+      font-size: 16px;
+      font-weight: bold;
+      color: #666666;
+      & > .watch_all {
+        font-size: 14px;
+        font-weight: 400;
+        color: #0c5dfb;
+        float: right;
+        user-select: none;
+        cursor: pointer;
+      }
+    }
+  }
+  .flex_box_right {
+    height: 258px;
+    flex: 1;
+    border: 1px solid #666;
+  }
+}
+.style_box {
+  background: #ffffff;
+  box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
+  border-radius: 8px;
+  flex: 1;
+}
+.style_box_tran {
+  margin-top: 51px;
+  flex: 1;
+  background: #ffffff;
+  box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
+  border-radius: 8px;
+  display: flex;
+  .imgIBx {
+    width: 224px;
+    height: 258px;
+    margin-top: -47px;
+    border-radius: 8px;
+    cursor: pointer;
+    transition: all 0.3s;
+    &:hover {
+      box-shadow: 3px 3px 14px 0px rgba(9, 109, 217, 0.7);
+      transform: scale(1.01);
     }
-    strong {
-      font-size: 18px;
-      color: #333;
+    padding: 15px 16px;
+    & > .p1 {
+      margin: 0px 0px 23px 0px;
+      font-size: 14px;
+      font-weight: 400;
+      color: #fff;
+    }
+    & > .p2 {
+      font-size: 40px;
+      font-weight: bold;
+      color: #fff;
+      margin: 0px;
+    }
+  }
+  .imgUrl1 {
+    background: transparent url("../assets/index_images/sl3.png") no-repeat
+      center;
+  }
+  .imgUrl2 {
+    background: transparent url("../assets/index_images/sl4.png") no-repeat
+      center;
+  }
+  .imgUrl3 {
+    background: transparent url("../assets/index_images/sl5.png") no-repeat
+      center;
+  }
+  .imgUrl4 {
+    background: transparent url("../assets/index_images/sl6.png") no-repeat
+      center;
+  }
+  .imgUrl5 {
+    background: transparent url("../assets/index_images/sl7.png") no-repeat
+      center;
+  }
+  .imgSize {
+    background-size: 224px 258px;
+  }
+  .li_s {
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-around;
+    .li_s_child {
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      height: 48px;
+      padding: 0px 15px;
+      line-height: 48px;
+      border-right: 2px solid #13c2c2;
+      background: linear-gradient(
+        90deg,
+        rgba(245, 245, 245, 0) 0%,
+        #f5f5f5 100%
+      );
+      .li_s_child_left {
+        font-size: 14px;
+        font-weight: 400;
+        color: #666666;
+      }
+      .li_s_child_right {
+        font-size: 24px;
+        font-weight: 400;
+        color: #13c2c2;
+      }
     }
   }
 }
-.ul_style_right {
-  font-size: 12px;
-  color: #333;
-  li {
-    margin-bottom: 6px;
+.style_box_tran_yellow {
+  margin-top: 88px;
+  flex: 1;
+  background: #ffffff;
+  box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
+  border-radius: 8px;
+  display: flex;
+  .imgIBx {
+    width: 224px;
+    height: 296px;
+    margin-top: -82px;
+    border-radius: 8px;
+    cursor: pointer;
+    transition: all 0.3s;
+    &:hover {
+      box-shadow: 3px 3px 14px 0px rgba(217, 112, 0, 0.7);
+      transform: scale(1.01);
+    }
+    padding: 15px 16px;
+    & > .p1 {
+      margin: 0px 0px 23px 0px;
+      font-size: 14px;
+      font-weight: 400;
+      color: #fff;
+    }
+    & > .p2 {
+      font-size: 40px;
+      font-weight: bold;
+      color: #fff;
+      margin: 0px;
+    }
+  }
+  .imgUrl4 {
+    background: transparent url("../assets/index_images/sl6.png") no-repeat
+      center;
+  }
+  .imgUrl5 {
+    background: transparent url("../assets/index_images/sl7.png") no-repeat
+      center;
   }
+  .imgSize {
+    background-size: 224px 296px;
+  }
+  .li_s {
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-around;
+    .li_s_child {
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      height: 48px;
+      padding: 0px 15px;
+      line-height: 48px;
+      border-right: 2px solid #13c2c2;
+      background: linear-gradient(
+        90deg,
+        rgba(245, 245, 245, 0) 0%,
+        #f5f5f5 100%
+      );
+      .li_s_child_left {
+        font-size: 14px;
+        font-weight: 400;
+        color: #666666;
+      }
+      .li_s_child_right {
+        font-size: 24px;
+        font-weight: 400;
+        color: #13c2c2;
+      }
+    }
+  }
+}
+.dy_sty1 {
+  margin-right: 13px;
+  height: 258px;
+  width: 433px;
+}
+.dy_sty2 {
+  height: 258px;
+  flex: 1;
+}
+.dy_sty3 {
+  margin-right: 13px;
+  height: 296px;
+  flex: 1;
 }
-.dis_flex {
+.dy_sty4 {
+  margin-right: 13px;
+  height: 336px;
+  flex: 1;
+}
+.tranSty {
+  color: transparent !important;
+  user-select: none;
+}
+.flex1 {
+  padding: 15px 16px;
   display: flex;
-  margin-bottom: 10px;
-  .label_style {
-    flex-shrink: 0;
-    width: 80px;
+  flex-direction: column;
+  & > .p1 {
+    margin: 0px 0px 23px 0px;
+    font-size: 14px;
+    font-weight: 400;
+    color: #666666;
+  }
+  & > .p2 {
+    font-size: 40px;
     font-weight: bold;
-    color: #333;
+    color: #333333;
+    margin: 0px;
+    flex: 1;
   }
-  .topul_sty {
-    margin: 0;
-    .topFloat_sty {
-      color: #666;
-      float: left;
-      margin: 0px 8px 8px 0px;
-      user-select: none;
-      cursor: pointer;
+  & > .p3 {
+    font-size: 40px;
+    font-weight: bold;
+    text-decoration: underline;
+    color: #0c5dfb;
+    margin: 0px;
+    flex: 1;
+  }
+  & > .foot_numbox {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    .span1 {
+      font-size: 14px;
+      font-weight: 400;
+      color: #666666;
+    }
+    .span2 {
+      font-size: 24px;
+      font-weight: 400;
+      text-decoration: underline;
+      color: #0c5dfb;
+    }
+  }
+  & > .foot_list_box {
+    display: flex;
+    align-items: center;
+    .foot_list_style {
+      flex: 1;
+      &:first-child {
+        border-right: 1px solid #d9d9d9;
+        padding-right: 15px;
+        margin-right: 15px;
+      }
+      .aNumTopTitle {
+        font-size: 14px;
+        font-weight: 400;
+        color: #666666;
+        display: flex;
+        align-items: center;
+        margin-bottom: 16px;
+        img {
+          width: 20px;
+          height: 19px;
+          margin-right: 8px;
+        }
+      }
+      .aNumbox {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .span1 {
+          font-size: 14px;
+          font-weight: 400;
+          color: #666666;
+        }
+        .span2 {
+          font-size: 24px;
+          font-weight: 400;
+          text-decoration: underline;
+          color: #0c5dfb;
+        }
+        .span3 {
+          font-size: 24px;
+          font-weight: 400;
+          color: #13c2c2;
+        }
+      }
+    }
+  }
+  & > .foot_box {
+    display: flex;
+    align-items: center;
+    .foot_box_list {
+      flex: 1;
+      height: 120px;
+      background-color: #f5f5f5;
+      border-radius: 8px;
+      padding: 8px;
+      .top_label {
+        font-size: 14px;
+        font-weight: 400;
+        color: #666666;
+      }
+      .nums {
+        margin-top: 33px;
+        font-size: 40px;
+        font-weight: bold;
+        color: #333333;
+        text-align: center;
+      }
+      .nums_mini {
+        margin-top: 6px;
+        font-size: 24px;
+        font-weight: 400;
+        color: #333333;
+        text-align: center;
+      }
     }
   }
 }
-.activeStyle {
-  font-weight: bold !important;
-  color: #409eff !important;
-}
-.NumBox {
+.flex2 {
+  padding: 16px;
   display: flex;
-  align-items: center;
-  i {
-    font-style: normal;
+  flex-direction: column;
+  & > .flex2_top_box {
+    flex: 1;
+    margin-bottom: 16px;
+    .flex2_label {
+      width: 160px;
+      height: 64px;
+      background: #f5f5f5;
+      border-radius: 8px;
+      margin-right: 16px;
+      display: inline-block;
+      padding: 7px;
+      .top {
+        font-size: 14px;
+        font-weight: 400;
+        color: #666666;
+      }
+      .nums {
+        font-size: 24px;
+        font-weight: 400;
+        color: #333333;
+        text-align: center;
+      }
+    }
+  }
+  & > .flex2_footer {
+    max-height: 106px;
+    overflow: auto;
+    background: #f5f5f5;
+    border-radius: 8px;
+    margin: 0px;
+    padding: 16px 16px 0px 16px;
+  }
+}
+.flex3 {
+  padding: 16px;
+  .flex3_1 {
+    margin-bottom: 16px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
   }
-  span {
-    color: rgb(217, 0, 27);
-    font-size: 20px;
+  .flex3_2 {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+  }
+  .flex3_children {
+    height: 104px;
+    flex: 1;
+    background: #f5f5f5;
+    border-radius: 8px;
+    padding: 8px;
+    .top_label {
+      font-size: 14px;
+      font-weight: 400;
+      color: #666666;
+    }
+    .nums {
+      margin-top: 15px;
+      text-align: center;
+      font-size: 40px;
+      font-weight: bold;
+      color: #333333;
+    }
   }
 }
+/deep/ .el-table .success-row {
+  background: rgb(246, 255, 254);
+}
 </style>