2 Commits 004b12f1df ... 36048aa504

Author SHA1 Message Date
  wwj 36048aa504 Merge branch 'master' of http://gogs.gisvg.com/YDM/graduate-ui 1 month ago
  蒋佳琪 5fbf3eb707 Merge branch 'master' of http://gogs.gisvg.com/YDM/graduate-ui 1 month ago
1 changed files with 49 additions and 103 deletions
  1. 49 103
      src/views/Home/Index.vue

+ 49 - 103
src/views/Home/Index.vue

@@ -1,115 +1,66 @@
-
-  <!-- <div>
-                                                                  <el-card shadow="never">
-                                                                    <el-skeleton :loading="loading" animated>
-                                                                      <el-row :gutter="16" justify="space-between">
-                                                                        <el-col :xl="12" :lg="12" :md="12" :sm="24" :xs="24">
-                                                                          <div class="flex items-center">
-                                                                            <el-avatar :src="avatar" :size="70" class="mr-16px">
-                                                                              <img src="@/assets/imgs/avatar.gif" alt="" />
-                                                                            </el-avatar>
-                                                                            <div>
-                                                                              <div class="text-20px">
-                                                                                {{ t('workplace.welcome') }} {{ username }} {{ t('workplace.happyDay') }}
-                                                                              </div>
-                                                                              <div class="mt-10px text-14px text-gray-500">
-                                                                                {{ t('workplace.toady') }},20℃ - 32℃!
-                                                                              </div>
-                                                                            </div>
-                                                                          </div>
-                                                                        </el-col>
-                                                                        <el-col :xl="12" :lg="12" :md="12" :sm="24" :xs="24">
-                                                                          <div class="h-70px flex items-center justify-end lt-sm:mt-10px">
-                                                                            <div class="px-8px text-right">
-                                                                              <div class="mb-16px text-14px text-gray-400">{{ t('workplace.project') }}</div>
-                                                                              <CountTo class="text-20px" :start-val="0" :end-val="totalSate.project" :duration="2600" />
-                                                                            </div>
-                                                                            <el-divider direction="vertical" />
-                                                                            <div class="px-8px text-right">
-                                                                              <div class="mb-16px text-14px text-gray-400">{{ t('workplace.toDo') }}</div>
-                                                                              <CountTo class="text-20px" :start-val="0" :end-val="totalSate.todo" :duration="2600" />
-                                                                            </div>
-                                                                            <el-divider direction="vertical" border-style="dashed" />
-                                                                            <div class="px-8px text-right">
-                                                                              <div class="mb-16px text-14px text-gray-400">{{ t('workplace.access') }}</div>
-                                                                              <CountTo class="text-20px" :start-val="0" :end-val="totalSate.access" :duration="2600" />
-                                                                            </div>
-                                                                          </div>
-                                                                        </el-col>
-                                                                      </el-row>
-                                                                    </el-skeleton>
-                                                                  </el-card>
-                                                                </div> -->
-  <!-- 日期
-                                                                                                  <div class="mt-16px text-12px text-gray-400">
-                                                                                                    {{ formatTime(item.date, 'yyyy-MM-dd') }}
-                                                                                                  </div> -->
-  <!-- 更多<el-link type="primary" :underline="false" href="https://github.com/yudaocode" target="_blank"> {{
-                                                    t('action.more') }}
-                                                  </el-link> -->
-
 <template>
   <el-skeleton :loading="loading" animated>
     <el-row :gutter="8">
       <!-- 第一部分 -->
-      <el-col :xs="24" :sm="24" :md="24" :lg="10" :xl="10">
-        <el-card style="height: 99%;">
+      <el-col :xs="24" :sm="24" :md="24" :lg="14" :xl="10">
+        <el-card>
           <el-card shadow="never" class="h-100%  ">
-  
+
             <template #header>
               <div class="h-7 flex justify-between fw-800 text-20px">
                 <span>基本信息</span>
               </div>
             </template>
-  
+
             <el-row style="flex-wrap: wrap; ">
               <el-col v-for="(item, index) in projects" :key="`card-${index}`" :xs="24" :sm="24" :md="24" :lg="8" :xl="8">
                 <el-card shadow="hover" class="mr-5px mt-5px " style="background-color:#2585a6 ">
-                  <div class="flex items-center h-90px ">
+                  <div class="flex items-center h-75px ">
                     <!-- <Icon :icon="item.icon" :size="25" class="mr-8px" /> -->
                     <Icon :icon="item.icon" :size="38" class="mr-8px " />
-  
+
                     <span class="text-17px c-white">{{ item.name }}</span>
                   </div>
                   <div class="mb-18px text-32px c-white ml-20px text-center">{{ t(item.message) }}</div>
                   <!-- <div class="mt-12px flex justify-between text-12px text-gray-400">
-                                                                                   
+
                                                                                     <span>{{ formatTime(item.time, 'yyyy-MM-dd') }}</span>
                                                                                   </div> -->
                 </el-card>
               </el-col>
             </el-row>
           </el-card>
-  
-          <el-card shadow="never" class=" h-100% mt-20px ">
+
+          <el-card shadow="never" class=" h-100% mt-10px ">
             <template #header>
               <div class="h-5 flex justify-between fw-800 text-20px">
-                <span>出勤统计</span>
+                <span>实时出勤统计</span>
               </div>
             </template>
             <el-card shadow="never" class="ml-2px  pr-10px  mt-10px" style="background-color:#33a3dc ;opacity: 0.8; ">
               <div class="h-70px flex items-center justify-center flex-wrap mt-10px c-white">
-                <div class="px-8px text-right">
-                  <div class="mb-10px text-20px text-white ">当日出勤情况</div>
+                <div class="px-25px text-center" style="margin: auto;">
+                  <div class="mb-16px text-18px text-white ">打卡人数</div>
+                  <CountTo class="text-28px" :start-val="0" :end-val="totalSate.normal" :duration="2600" />
                 </div>
-                <el-divider direction="vertical" style="border-left-black" />
-                <div class="px-25px text-center">
-                  <div class="mb-16px text-18px text-white ">正常人数</div>
-                  <CountTo class="text-20px" :start-val="0" :end-val="totalSate.normal" :duration="2600" />
+                <el-divider direction="vertical" border-style="dashed" />
+                <div class="px-8px text-center" style="margin: auto;">
+                  <div class="mb-16px text-18px text-white ">未打卡人数</div>
+                  <CountTo class="text-28px" :start-val="0" :end-val="totalSate.unusual" :duration="2600" />
                 </div>
                 <el-divider direction="vertical" border-style="dashed" />
-                <div class="px-8px text-center">
-                  <div class="mb-16px text-18px text-white ">异常人数</div>
-                  <CountTo class="text-20px" :start-val="0" :end-val="totalSate.unusual" :duration="2600" />
+                <div class="px-8px text-center" style="margin: auto;">
+                  <div class="mb-16px text-18px text-white ">请假人数</div>
+                  <CountTo class="text-28px" :start-val="0" :end-val="totalSate.unusual" :duration="2600" />
                 </div>
               </div>
             </el-card>
           </el-card>
-  
-          <el-card shadow="hover" class="mb-8px   mt-30px">
+
+          <el-card shadow="hover" class=" mt-10px">
             <template #header>
               <div class="h-5 flex justify-between fw-800 text-20px">
-                <span>实时人数统计</span>
+                <span>毕业条件达成统计</span>
               </div>
             </template>
             <el-skeleton :loading="loading" animated>
@@ -119,11 +70,11 @@
         </el-card>
       </el-col>
       <!-- 第二部分 -->
-      <el-col :xs="24" :sm="24" :md="24" :lg="14" :xl="10">
+      <el-col :xs="24" :sm="24" :md="24" :lg="10" :xl="7">
         <!-- 第一个el-row -->
         <el-row :gutter="15">
-          <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-            <el-card shadow="never" class="ml-10px h-480px ">
+          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+            <el-card shadow="never" class=" mb-10px h-480px ">
               <template #header>
                 <div class="h-5 flex justify-between fw-800 text-20px">
                   <span>周出勤情况</span>
@@ -136,9 +87,9 @@
               </el-card>
             </el-card>
           </el-col>
-  
-          <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="10">
-            <el-card shadow="never">
+
+          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+            <el-card shadow="never" class="mb-10px ">
               <template #header>
                 <div class="h-5 flex justify-between fw-800 text-20px">
                   <span>实时打卡状态</span>
@@ -174,25 +125,26 @@
                 </vue3ScrollSeamless>
               </div>
             </el-card>
-  
+
           </el-col>
         </el-row>
-  
-        <!-- 第二个el-row -->
-        <el-row class="mt-12px" :gutter="15" align="center">
-          <el-col :xs="24" :sm="24" :md="24" :lg="13" :xl="7">
-            <el-card shadow="never" class="mt-1px h-480px ml-10px" style="border: none;"> <!-- 移除 el-card 的边框 -->
+      </el-col>
+              <!-- 第二个el-row -->
+      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="7">
+        <el-row :gutter="15" align="center">
+          <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="24">
+            <el-card shadow="never" class=" h-480px mb-10px "> <!-- 移除 el-card 的边框 -->
               <template #header>
                 <div class="h-7 flex justify-between fw-800 text-20px">
                   <span>缺勤预警</span>
                 </div>
               </template>
-  
+
               <div class="demos">
                 <!-- <div class="table-header">
                           <div class="header">
-                            <el-row class="shouye" style="border: none;"> 
-                              <el-col :span="8" class="center text-18px" style="border: none;"> 
+                            <el-row class="shouye" style="border: none;">
+                              <el-col :span="8" class="center text-18px" style="border: none;">
                                 <div>学生学号</div>
                               </el-col>
                               <el-col :span="10" class="center text-18px" style="border: none;">
@@ -207,7 +159,7 @@
                             </el-row>
                           </div>
                         </div> -->
-  
+
                 <vue3ScrollSeamless class="scroll-wraps text-color" :classOptions="class2Options" :dataList="list2">
                   <div v-if="list2.length > 0">
                     <el-row v-for="(item, i) of list2" :key="i" class="shouye">
@@ -232,11 +184,10 @@
                 </vue3ScrollSeamless>
               </div>
             </el-card>
-  
+
           </el-col>
-  
-          <el-col :xs="24" :sm="24" :md="24" :lg="11" :xl="7">
-            <el-card shadow="never" class="mr-8px mt-1px h-480px ">
+          <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="24">
+            <el-card shadow="never" class=" mt-1px h-480px ">
               <template #header>
                 <div class="h-7 flex justify-between fw-800 text-20px">
                   <span>学生毕业条件达成率</span>
@@ -255,7 +206,7 @@
                             </el-row>
                           </div>
                         </div> -->
-  
+
                 <vue3ScrollSeamless class="scroll-wrapss  text-color" :classOptions="list1Options" :dataList="list1">
                   <div v-if="list1.length > 0">
                     <el-row v-for="(item, i) of list1" :key="i" class="shouye" :style="{ marginBottom: '10px' }">
@@ -273,20 +224,15 @@
                     暂无预测记录
                   </div>
                 </vue3ScrollSeamless>
-  
+
               </div>
-  
+
             </el-card>
           </el-col>
-  
         </el-row>
       </el-col>
     </el-row>
   </el-skeleton>
-  
-  
-  
-  
 </template>
 
 <script lang="ts" setup>
@@ -485,8 +431,8 @@ const getShortcut = async () => {
 // 用户来源
 const getUserAccessSource = async () => {
   const data = [
-    { value: 1048, name: '在线人数' },
-    { value: 735, name: '离线人数' },
+    { value: 1048, name: '达成人数' },
+    { value: 735, name: '未达成人数' },
   ];
 
   const options = {
@@ -820,7 +766,7 @@ getAllApi()
 }
 
 /* .text-color {
- color: rgb(15, 131, 233); 
+ color: rgb(15, 131, 233);
 } */