Browse Source

Merge branch 'master' of http://gogs.gisvg.com/YDM/graduate-ui

47 1 month ago
parent
commit
519d09c8de
4 changed files with 226 additions and 338 deletions
  1. 1 0
      src/assets/svgs/ds.svg
  2. 0 0
      src/assets/svgs/gzs.svg
  3. 1 0
      src/assets/svgs/zxs.svg
  4. 224 338
      src/views/Home/Index.vue

+ 1 - 0
src/assets/svgs/ds.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1731768286274" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3561" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M896.5 960H157.5v-23c0-47.5 9.8-93.6 29.2-137.1 18.7-41.8 45.4-79.4 79.4-111.6C300 656.2 339.5 631 383.5 613.4c45.4-18.2 93.7-27.4 143.4-27.4s98 9.2 143.4 27.4c44 17.6 83.5 42.8 117.4 74.9 34 32.2 60.8 69.8 79.4 111.6C886.7 843.4 896.5 889.5 896.5 937v23z m-692.1-46h645.2c-5.7-72.6-38.4-140.1-93.4-192.2-61.2-57.9-142.6-89.8-229.2-89.8s-168 31.9-229.2 89.8c-55 52.1-87.7 119.6-93.4 192.2z" fill="#ffffff" p-id="3562"></path><path d="M527.5 587c-100.4 0-182-77.3-182-172.4 0-41.1 16.1-81.3 45.5-113.2 4.4-4.7 10.5-7.4 16.9-7.4h240.7c6.3 0 12.3 2.6 16.7 7.2 28.9 30.5 44.2 69.7 44.2 113.4 0 95.1-81.6 172.4-182 172.4zM418.5 340c-17.5 22-27 48.1-27 74.6 0 69.7 61 126.4 136 126.4s136-56.7 136-126.4c0-28.8-8.5-53.8-25.3-74.6H418.5z" fill="#ffffff" p-id="3563"></path><path d="M659.7 340H388.3c-16.4 0-29.8-14-29.8-31.3V155c0-12.7 10.3-23 23-23s23 10.3 23 23v139h239V155c0-12.7 10.3-23 23-23s23 10.3 23 23v153.7c0 17.3-13.3 31.3-29.8 31.3z" fill="#ffffff" p-id="3564"></path><path d="M526 243c-8.6 0-17.3-1.1-23.8-3.3L247.5 153.5l254.7-86.2c13.1-4.4 34.5-4.4 47.7 0L804.5 153.5l-254.6 86.2c-6.6 2.2-15.3 3.3-23.9 3.3z m-134.9-89.5l125.9 42.6c3.7 1.2 14.5 1.2 18.2 0l125.9-42.6-126-42.6c-3.7-1.2-14.5-1.2-18.2 0l-125.8 42.6zM766.5 189h2c12.2 0 22 9.8 22 22v212c0 12.2-9.8 22-22 22h-2c-12.2 0-22-9.8-22-22V211c0-12.2 9.8-22 22-22z" fill="#ffffff" p-id="3565"></path></svg>

File diff suppressed because it is too large
+ 0 - 0
src/assets/svgs/gzs.svg


+ 1 - 0
src/assets/svgs/zxs.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1731768329179" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3786" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M514.688 193.877333l5.290667 0.853334 438.954666 109.738666c33.237333 8.32 33.237333 55.594667 0 63.872l-172.629333 43.136v209.621334c0 11.52-5.973333 22.186667-15.829333 28.16-15.36 9.258667-41.770667 22.613333-76.714667 35.84-58.325333 22.101333-119.765333 35.413333-181.76 35.413333-61.994667 0-123.434667-13.312-181.76-35.413333-34.986667-13.226667-61.397333-26.581333-76.714667-35.84a32.938667 32.938667 0 0 1-15.872-28.16V411.477333l-65.834666-16.469333v237.653333l32.938666 0.042667c18.176 0 32.896 14.762667 32.896 32.938667v131.669333a32.938667 32.938667 0 0 1-32.896 32.938667H73.045333a32.938667 32.938667 0 0 1-32.896-32.938667v-131.669333c0-18.176 14.72-32.938667 32.896-32.938667h32.938667V378.538667l-40.917333-10.24c-33.237333-8.277333-33.237333-55.552 0-63.872l438.954666-109.738667 5.290667-0.853333h5.376zM171.818667 698.538667l-25.045334 0.042666a36.608 36.608 0 0 1-15.786666 0h-25.002667v65.792h65.834667v-65.834666z m131.669333-270.634667v173.610667l1.152 0.597333c10.794667 5.461333 22.784 10.922667 35.669333 16.213333l13.226667 5.205334c51.456 19.498667 105.258667 31.146667 158.464 31.146666 53.205333 0 107.008-11.648 158.421333-31.146666 18.090667-6.826667 34.517333-14.165333 48.938667-21.418667l1.152-0.597333-0.042667-173.568-200.490666 50.133333a32.938667 32.938667 0 0 1-15.957334 0l-200.533333-50.176zM512 260.565333L208.725333 336.426667 512 412.245333l303.232-75.818666L512 260.565333z" fill="#ffffff" p-id="3787"></path></svg>

+ 224 - 338
src/views/Home/Index.vue

@@ -49,358 +49,244 @@
                                                   </el-link> -->
 
 <template>
-  <div>
-    <el-skeleton :loading="loading" animated>
-      <el-row :gutter="8">
-        <!-- 第一部分 -->
-        <el-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10">
-          <el-card style="height: 99%;">
-            <el-card shadow="never" class="h-100%  ">
-
-              <template #header>
-                <div class="h-7 flex justify-between fw-800 text-20px">
-                  <span>基本信息</span>
+  <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-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 ">
+                    <!-- <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 ">
+            <template #header>
+              <div class="h-5 flex justify-between fw-800 text-20px">
+                <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>
-              </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 ">
-                      <!-- <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-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" />
+                </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>
+              </div>
             </el-card>
-
-            <el-card shadow="never" class=" h-100% mt-20px ">
+          </el-card>
+  
+          <el-card shadow="hover" class="mb-8px   mt-30px">
+            <template #header>
+              <div class="h-5 flex justify-between fw-800 text-20px">
+                <span>实时人数统计</span>
+              </div>
+            </template>
+            <el-skeleton :loading="loading" animated>
+              <Echart :options="pieOptionsData" :height="250" />
+            </el-skeleton>
+          </el-card>
+        </el-card>
+      </el-col>
+      <!-- 第二部分 -->
+      <el-col :xs="24" :sm="24" :md="24" :lg="14" :xl="10">
+        <!-- 第一个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 ">
               <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>
-                  <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" />
-                  </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>
-                </div>
+              <el-card shadow="hover" class="mt-1px h-380px ">
+                <el-skeleton :loading="loading" animated>
+                  <Echart :options="barOptionsData" :height="350" />
+                </el-skeleton>
               </el-card>
             </el-card>
-
-            <el-card shadow="hover" class="mb-8px   mt-30px">
+          </el-col>
+  
+          <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="10">
+            <el-card shadow="never">
               <template #header>
                 <div class="h-5 flex justify-between fw-800 text-20px">
-                  <span>实时人数统计</span>
+                  <span>实时打卡状态</span>
                 </div>
               </template>
-              <el-skeleton :loading="loading" animated>
-                <Echart :options="pieOptionsData" :height="250" />
-              </el-skeleton>
-            </el-card>
-          </el-card>
-        </el-col>
-        <!-- 第二部分 -->
-        <el-col :xs="24" :sm="24" :md="10" :lg="14" :xl="10">
-          <!-- 第一个el-row -->
-          <el-row :gutter="15">
-            <el-col :xs="24" :sm="24" :md="10" :lg="12" :xl="12">
-              <el-card shadow="never" class="ml-10px h-480px ">
-                <template #header>
-                  <div class="h-5 flex justify-between fw-800 text-20px">
-                    <span>周出勤情况</span>
+              <div class="demo">
+                <vue3ScrollSeamless class="scroll-wrap text-color" :classOptions="classOptions" :dataList="list">
+                  <div v-if="list.length > 0">
+                    <el-row v-for="(item, i) of list" :key="i" class="shouye"
+                      style="margin-bottom: 10px; display: flex; justify-content: center;">
+                      <el-col :span="7" class="center"
+                        style="display: flex; justify-content: center; align-items: center; padding: 6px;">
+                        <div>{{ item.trainNumber }}</div>
+                      </el-col>
+                      <el-col :span="6" class="center"
+                        style="display: flex; justify-content: center; align-items: center; padding: 6px;">
+                        <div>{{ item.destination }}</div>
+                      </el-col>
+                      <el-col :span="6" class="center"
+                        style="display: flex; justify-content: center; align-items: center; padding: 6px;">
+                        <div>{{ item.departureTime }}</div>
+                      </el-col>
+                      <el-col :span="5" class="center"
+                        style="display: flex; justify-content: center; align-items: center; padding: 6px;">
+                        <div>{{ item.status }}</div>
+                      </el-col>
+                    </el-row>
                   </div>
-                </template>
-                <el-card shadow="hover" class="mt-1px h-380px ">
-                  <el-skeleton :loading="loading" animated>
-                    <Echart :options="barOptionsData" :height="350" />
-                  </el-skeleton>
-                </el-card>
-              </el-card>
-            </el-col>
-
-            <el-col :xs="24" :sm="24" :md="10" :lg="12" :xl="10">
-              <el-card shadow="never">
-                <template #header>
-                  <div class="h-5 flex justify-between fw-800 text-20px">
-                    <span>实时打卡状态</span>
+                  <div v-if="list.length == 0"
+                    style="width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; color: white; font-size: 18px;">
+                    暂无预测记录
                   </div>
-                </template>
-                <div class="demo">
-                  <vue3ScrollSeamless class="scroll-wrap text-color" :classOptions="classOptions" :dataList="list">
-                    <div v-if="list.length > 0">
-                      <el-row v-for="(item, i) of list" :key="i" class="shouye"
-                        style="margin-bottom: 10px; display: flex; justify-content: center;">
-                        <el-col :span="7" class="center"
-                          style="display: flex; justify-content: center; align-items: center; padding: 6px;">
-                          <div>{{ item.trainNumber }}</div>
-                        </el-col>
-                        <el-col :span="6" class="center"
-                          style="display: flex; justify-content: center; align-items: center; padding: 6px;">
-                          <div>{{ item.destination }}</div>
-                        </el-col>
-                        <el-col :span="6" class="center"
-                          style="display: flex; justify-content: center; align-items: center; padding: 6px;">
-                          <div>{{ item.departureTime }}</div>
-                        </el-col>
-                        <el-col :span="5" class="center"
-                          style="display: flex; justify-content: center; align-items: center; padding: 6px;">
-                          <div>{{ item.status }}</div>
-                        </el-col>
-                      </el-row>
-                    </div>
-                    <div v-if="list.length == 0"
-                      style="width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; color: white; font-size: 18px;">
-                      暂无预测记录
-                    </div>
-                  </vue3ScrollSeamless>
+                </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 的边框 -->
+              <template #header>
+                <div class="h-7 flex justify-between fw-800 text-20px">
+                  <span>缺勤预警</span>
                 </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="12" :lg="13" :xl="7">
-              <el-card shadow="never" class="mt-1px h-480px ml-10px" style="border: none;"> <!-- 移除 el-card 的边框 -->
-                <template #header>
-                  <div class="h-7 flex justify-between fw-800 text-20px">
-                    <span>缺勤预警</span>
+              </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;"> 
+                                <div>学生学号</div>
+                              </el-col>
+                              <el-col :span="10" class="center text-18px" style="border: none;">
+                                <div>工作间</div>
+                              </el-col>
+                              <el-col :span="6" class="center text-18px" style="border: none;">
+                                <div>导师</div>
+                              </el-col>
+                              <el-col :span="10" class="center text-18px" style="border: none;">
+                                <div>缺勤时间段</div>
+                              </el-col>
+                            </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">
+                      <el-col :span="6" class="center" style="padding: 10px; border: none;">
+                        <div>{{ item.ID }}</div>
+                      </el-col>
+                      <el-col :span="6" class="center" style="padding: 10px; border: none;">
+                        <div>{{ item.destination }}</div>
+                      </el-col>
+                      <el-col :span="6" class="center" style="padding: 10px; border: none;">
+                        <div>{{ item.trainNumber }}</div>
+                      </el-col>
+                      <el-col :span="6" class="center" style="padding: 10px; border: none;">
+                        <div>{{ item.departureTime }}</div>
+                      </el-col>
+                    </el-row>
                   </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;">
-                              <div>学生学号</div>
-                            </el-col>
-                            <el-col :span="10" class="center text-18px" style="border: none;">
-                              <div>工作间</div>
-                            </el-col>
-                            <el-col :span="6" class="center text-18px" style="border: none;">
-                              <div>导师</div>
-                            </el-col>
-                            <el-col :span="10" class="center text-18px" style="border: none;">
-                              <div>缺勤时间段</div>
-                            </el-col>
-                          </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">
-                        <el-col :span="6" class="center" style="padding: 10px; border: none;">
-                          <div>{{ item.ID }}</div>
-                        </el-col>
-                        <el-col :span="6" class="center" style="padding: 10px; border: none;">
-                          <div>{{ item.destination }}</div>
-                        </el-col>
-                        <el-col :span="6" class="center" style="padding: 10px; border: none;">
-                          <div>{{ item.trainNumber }}</div>
-                        </el-col>
-                        <el-col :span="6" class="center" style="padding: 10px; border: none;">
-                          <div>{{ item.departureTime }}</div>
-                        </el-col>
-                      </el-row>
-                    </div>
-                    <div v-if="list2.length == 0"
-                      style="width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; color: white; font-size: 18px;">
-                      暂无预测记录
-                    </div>
-                  </vue3ScrollSeamless>
-                </div>
-              </el-card>
-
-            </el-col>
-
-            <el-col :xs="24" :sm="24" :md="9" :lg="11" :xl="7">
-              <el-card shadow="never" class="mr-8px mt-1px h-480px ">
-                <template #header>
-                  <div class="h-7 flex justify-between fw-800 text-20px">
-                    <span>学生毕业条件达成率</span>
+                  <div v-if="list2.length == 0"
+                    style="width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; color: white; font-size: 18px;">
+                    暂无预测记录
                   </div>
-                </template>
-                <div class="demoss">
-                  <!-- <div class="table-header">
-                        <div class="header">
-                          <el-row class="shouye">
-                            <el-col :span="12" class="center text-18px">
-                              <div>工作间</div>
-                            </el-col>
-                            <el-col :span="15" class="center  text-18px ">
-                              <div>学生毕业条件达成率</div>
-                            </el-col>
-                          </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' }">
-                        <!-- 增加行与行之间的间距 -->
-                        <el-col :span="12" class="center" style="padding: 8px;"> <!-- 增加内边距 -->
-                          <div>{{ item.destination }}</div>
-                        </el-col>
-                        <el-col :span="12" class="center" style="padding: 8px;">
-                          <div>{{ item.departureNumber }}</div>
-                        </el-col>
-                      </el-row>
-                    </div>
-                    <div v-if="list1.length == 0"
-                      style="width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; color: white; font-size: 18px;">
-                      暂无预测记录
-                    </div>
-                  </vue3ScrollSeamless>
-
-                </div>
-
-              </el-card>
-            </el-col>
-
-          </el-row>
-        </el-col>
-      </el-row>
-    </el-skeleton>
-  </div>
-
-  <el-row class="mt-8px" :gutter="8" justify="space-between">
-    <el-col :xl="16" :lg="16" :md="24" :sm="24" :xs="24" class="mb-8px">
-      <el-card shadow="never">
-        <template #header>
-          <div class="h-3 flex justify-between">
-            <span>{{ t('workplace.project') }}</span>
-            <el-link
-              type="primary"
-              :underline="false"
-              href="https://github.com/yudaocode"
-              target="_blank"
-            >
-              {{ t('action.more') }}
-            </el-link>
-          </div>
-        </template>
-        <el-skeleton :loading="loading" animated>
-          <el-row>
-            <el-col
-              v-for="(item, index) in projects"
-              :key="`card-${index}`"
-              :xl="8"
-              :lg="8"
-              :md="8"
-              :sm="24"
-              :xs="24"
-            >
-              <el-card shadow="hover" class="mr-5px mt-5px">
-                <div class="flex items-center">
-                  <Icon :icon="item.icon" :size="25" class="mr-8px" />
-                  <span class="text-16px">{{ item.name }}</span>
-                </div>
-                <div class="mt-12px text-9px text-gray-400">{{ t(item.message) }}</div>
-                <div class="mt-12px flex justify-between text-12px text-gray-400">
-                  <span>{{ item.personal }}</span>
-                  <span>{{ formatTime(item.time, 'yyyy-MM-dd') }}</span>
-                </div>
-              </el-card>
-            </el-col>
-          </el-row>
-        </el-skeleton>
-      </el-card>
-      <el-card shadow="never" class="mt-8px">
-        <el-skeleton :loading="loading" animated>
-          <el-row :gutter="20" justify="space-between">
-            <el-col :xl="10" :lg="10" :md="24" :sm="24" :xs="24">
-              <el-card shadow="hover" class="mb-8px">
-                <el-skeleton :loading="loading" animated>
-                  <Echart :options="pieOptionsData" :height="280" />
-                </el-skeleton>
-              </el-card>
-            </el-col>
-            <el-col :xl="14" :lg="14" :md="24" :sm="24" :xs="24">
-              <el-card shadow="hover" class="mb-8px">
-                <el-skeleton :loading="loading" animated>
-                  <Echart :options="barOptionsData" :height="280" />
-                </el-skeleton>
-              </el-card>
-            </el-col>
-          </el-row>
-        </el-skeleton>
-      </el-card>
-    </el-col>
-    <el-col :xl="8" :lg="8" :md="24" :sm="24" :xs="24" class="mb-8px">
-      <el-card shadow="never">
-        <template #header>
-          <div class="h-3 flex justify-between">
-            <span>{{ t('workplace.shortcutOperation') }}</span>
-          </div>
-        </template>
-        <el-skeleton :loading="loading" animated>
-          <el-row>
-            <el-col v-for="item in shortcut" :key="`team-${item.name}`" :span="8" class="mb-8px">
-              <div class="flex items-center">
-                <Icon :icon="item.icon" class="mr-8px" />
-                <el-link type="default" :underline="false" @click="setWatermark(item.name)">
-                  {{ item.name }}
-                </el-link>
+                </vue3ScrollSeamless>
               </div>
-            </el-col>
-          </el-row>
-        </el-skeleton>
-      </el-card>
-      <el-card shadow="never" class="mt-8px">
-        <template #header>
-          <div class="h-3 flex justify-between">
-            <span>{{ t('workplace.notice') }}</span>
-            <el-link type="primary" :underline="false">{{ t('action.more') }}</el-link>
-          </div>
-        </template>
-        <el-skeleton :loading="loading" animated>
-          <div v-for="(item, index) in notice" :key="`dynamics-${index}`">
-            <div class="flex items-center">
-              <el-avatar :src="avatar" :size="35" class="mr-16px">
-                <img src="@/assets/imgs/avatar.gif" alt="" />
-              </el-avatar>
-              <div>
-                <div class="text-14px">
-                  <Highlight :keys="item.keys.map((v) => t(v))">
-                    {{ item.type }} : {{ item.title }}
-                  </Highlight>
-                </div>
-                <div class="mt-16px text-12px text-gray-400">
-                  {{ formatTime(item.date, 'yyyy-MM-dd') }}
+            </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 ">
+              <template #header>
+                <div class="h-7 flex justify-between fw-800 text-20px">
+                  <span>学生毕业条件达成率</span>
                 </div>
+              </template>
+              <div class="demoss">
+                <!-- <div class="table-header">
+                          <div class="header">
+                            <el-row class="shouye">
+                              <el-col :span="12" class="center text-18px">
+                                <div>工作间</div>
+                              </el-col>
+                              <el-col :span="15" class="center  text-18px ">
+                                <div>学生毕业条件达成率</div>
+                              </el-col>
+                            </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' }">
+                      <!-- 增加行与行之间的间距 -->
+                      <el-col :span="12" class="center" style="padding: 8px;"> <!-- 增加内边距 -->
+                        <div>{{ item.destination }}</div>
+                      </el-col>
+                      <el-col :span="12" class="center" style="padding: 8px;">
+                        <div>{{ item.departureNumber }}</div>
+                      </el-col>
+                    </el-row>
+                  </div>
+                  <div v-if="list1.length == 0"
+                    style="width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; color: white; font-size: 18px;">
+                    暂无预测记录
+                  </div>
+                </vue3ScrollSeamless>
+  
               </div>
-            </div>
-            <el-divider />
-          </div>
-        </el-skeleton>
-      </el-card>
-    </el-col>
-  </el-row>
->>>>>>> c6f00b261b83e3eedb2918f7c41cf0d99d2b0052
+  
+            </el-card>
+          </el-col>
+  
+        </el-row>
+      </el-col>
+    </el-row>
+  </el-skeleton>
+  
+  
+  
+  
 </template>
 
 <script lang="ts" setup>
@@ -620,7 +506,7 @@ const getUserAccessSource = async () => {
       {
         type: 'pie',
         radius: ['120px', '70px'], // 设定内圈和外圈半径
-        center: ['50%', '90%'], // 中心位置
+        center: ['50%', '85%'], // 中心位置
         startAngle: 180,
         endAngle: 360,
         data: data.map(v => ({
@@ -797,10 +683,10 @@ const class2Options = reactive({
 const getDetail = async () => {
   loading.value = true
   try {
-    const D = await UserApi.getDetail();
-    detail.deptNum = D.deptNum
-    detail.studentNum = D.studentNum
-    detail.teacherNum = D.teacherNum
+    // const D = await UserApi.getDetail();
+    // detail.deptNum = D.deptNum
+    // detail.studentNum = D.studentNum
+    // detail.teacherNum = D.teacherNum
 
 
   } finally {
@@ -934,7 +820,7 @@ getAllApi()
 }
 
 /* .text-color {
- color: rgb(15, 131, 233);
+ color: rgb(15, 131, 233); 
 } */
 
 

Some files were not shown because too many files changed in this diff