From 239933482fd30e099ab9d038bc1a2e0164a65cb4 Mon Sep 17 00:00:00 2001
From: gjj <Ganjj@probim.com.cn>
Date: Mon, 17 Mar 2025 14:41:10 +0800
Subject: [PATCH] 增加标段筛选和接口字段,调整样式,增加全局放大

---
 src/views/ProjectView.vue   |  121 ++++++++---
 tailwind.config.js          |   55 +++--
 src/main.js                 |   26 ++
 yarn.lock                   |  261 +++++++++++++++++++++++++
 package.json                |    4 
 src/components/Header.vue   |   12 +
 src/views/Home.vue          |   34 +-
 vite.config.js              |   21 ++
 src/views/EquipmentView.vue |   59 +++--
 9 files changed, 489 insertions(+), 104 deletions(-)

diff --git a/package.json b/package.json
index 51cad57..6d5e1ed 100644
--- a/package.json
+++ b/package.json
@@ -33,11 +33,15 @@
     "echarts-gl": "2.0.9",
     "element-ui": "^2.15.12",
     "jquery": "^3.7.1",
+    "lib-flexible": "^0.3.2",
     "lodash-es": "^4.17.21",
     "nanoid": "^4.0.0",
     "nprogress": "^0.2.0",
+    "postcss-px2rem": "^0.3.0",
+    "px2rem-loader": "^0.1.9",
     "video.js": "^7.20.3",
     "vue": "^2.7.14",
+    "vue-fullscreen": "^2.6.1",
     "vue-router": "^3.6.5",
     "vue-seamless-scroll": "^1.1.23",
     "vue-template-compiler": "^2.7.14",
diff --git a/src/components/Header.vue b/src/components/Header.vue
index e37f15e..3e8d552 100644
--- a/src/components/Header.vue
+++ b/src/components/Header.vue
@@ -2,7 +2,7 @@
  * @Author: gjj Ganjj@probim.com.cn
  * @Date: 2025-02-14 14:32:18
  * @LastEditors: gjj Ganjj@probim.com.cn
- * @LastEditTime: 2025-02-26 15:50:22
+ * @LastEditTime: 2025-03-17 11:05:39
  * @FilePath: \北京交通大学\src\components\Header.vue
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
@@ -32,7 +32,8 @@
       </div>
       <div class="absolute top-0 right-0">
         <div class="flex items-center h-[80px] mr-[20px]">
-          <img class="w-[20px] h-[20px]" :src="getImageUrl('time.png')" alt="">
+          <i class="el-icon-full-screen cursor-pointer text-[#00FFFF] text-[24px]" @click="handleFullscreen" :title="$fullscreen.isFullscreen ? '退出全屏' : '全屏'"></i>
+          <img class="w-[20px] h-[20px] ml-[8px]" :src="getImageUrl('time.png')" alt="">
           <div class="text-[24px] text-[#FFBF00] ml-[8px]">{{ currentTime }}</div>
           <div class="text-[16px] text-[#C8C8C8] ml-[20px]">{{ currentDate }}</div>
         </div>
@@ -67,6 +68,13 @@
       },
     },
     methods: {
+      handleFullscreen() {
+        if (this.$fullscreen.isFullscreen) {
+          this.$fullscreen.exit()
+        } else {
+          this.$fullscreen.request()
+        }
+      },
       getImageUrl(name) {
         return new URL(`../assets/images/backgrounds/${name}`, import.meta.url).href
       },
diff --git a/src/main.js b/src/main.js
index 4988e8e..5defe7b 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,3 +1,11 @@
+/*
+ * @Author: gjj Ganjj@probim.com.cn
+ * @Date: 2025-02-14 14:32:17
+ * @LastEditors: gjj Ganjj@probim.com.cn
+ * @LastEditTime: 2025-03-17 11:40:33
+ * @FilePath: \北京交通大学\src\main.js
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 import Vue from "vue";
 
 //todo:更改为按需引入
@@ -16,14 +24,20 @@
 import "@css/tail-wind/index.css";
 import "@css/element-ui-override.scss";
 import "@css/self-global.scss";
+// import 'lib-flexible/flexible'
+// import 'lib-flexible/flexible.js'
+// import 'lib-flexible'
+import VueFullscreen from 'vue-fullscreen'
+
+Vue.use(VueFullscreen)
 
 
 Vue.config.productionTip = false;
 
 new Vue({
-  store,
-  router,
-  render: (h) => {
-    return h(App);
-  },
-}).$mount("#app");
+    store,
+    router,
+    render: (h) => {
+        return h(App);
+    },
+}).$mount("#app");
\ No newline at end of file
diff --git a/src/views/EquipmentView.vue b/src/views/EquipmentView.vue
index c4dcaae..ffd20dd 100644
--- a/src/views/EquipmentView.vue
+++ b/src/views/EquipmentView.vue
@@ -60,7 +60,7 @@
         <div class="percentage">{{item.percentage}}%</div>
        </div>
        <div class="label mt-[5px] flex flex-row items-center justify-center">
-        <div class="text-[12px] text-[#FFFFFF] mr-[12px]">{{item.name}}</div>
+        <div class="text-[16px] text-[#FFFFFF] mr-[12px]">{{item.name}}</div>
         <div class="text-[24px] text-[#FFD500]">{{item.value}}</div>
        </div>
       </div>
@@ -103,42 +103,54 @@
      <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqiwendu.png" alt="">
      <div class="env-info">
       <span class="envlabel">大气温度</span>
-      <span class="envvalue" :style="enviorStyle">5°C</span>
+      <div class="envvalue" :style="enviorStyle">
+        <span class="envvalue-text">5°C</span>
+      </div>
      </div>
     </div>
     <div class="env-item">
      <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqishidu.png" alt="">
      <div class="env-info">
       <span class="envlabel">大气湿度</span>
-      <span class="envvalue" :style="enviorStyle">22.9%</span>
+      <div class="envvalue" :style="enviorStyle">
+        <span class="envvalue-text">22.9%</span>
+      </div>
      </div>
     </div>
     <div class="env-item">
      <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM2.png" alt="">
      <div class="env-info">
       <span class="envlabel">PM2.5</span>
-      <span class="envvalue" :style="enviorStyle">10 μg/m³</span>
+      <div class="envvalue" :style="enviorStyle">
+        <span class="envvalue-text">10 μg/m³</span>
+      </div>
      </div>
     </div>
     <div class="env-item">
      <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM10.png" alt="">
      <div class="env-info">
       <span class="envlabel">PM10</span>
-      <span class="envvalue" :style="enviorStyle">13 μg/m³</span>
+      <div class="envvalue" :style="enviorStyle">
+        <span class="envvalue-text">13 μg/m³</span>
+      </div>
      </div>
     </div>
     <div class="env-item">
      <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengli.png" alt="">
      <div class="env-info">
       <span class="envlabel">风力</span>
-      <span class="envvalue" :style="enviorStyle">3级</span>
+      <div class="envvalue" :style="enviorStyle">
+        <span class="envvalue-text">3级</span>
+      </div>
      </div>
     </div>
     <div class="env-item">
      <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengxiang.png" alt="">
      <div class="env-info">
       <span class="envlabel">风向</span>
-      <span class="envvalue" :style="enviorStyle">北风</span>
+      <div class="envvalue" :style="enviorStyle">
+        <span class="envvalue-text">北风</span>
+      </div>
      </div>
     </div>
    </div>
@@ -456,7 +468,7 @@
 }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
 .equipment-container {
  width: 100%;
  display: flex;
@@ -527,12 +539,9 @@
 }
 
 .env-info {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- width: 70%;
- height: 95%;
+ 
+ width: calc( 100% - 88px);
+ height: 100%;
 }
 
 .satalabel {
@@ -546,17 +555,27 @@
 }
 
 .envlabel {
- font-size: 14px;
+ font-size: 16px;
  color: #C8C8C8;
+ display: flex;
+ align-items: center;
+ justify-content: center;
 }
 
 .envvalue {
   text-align: center;
- font-size: 16px;
- color: #fff;
- margin-top: 4px;
- width: 100%;
- height: 100%;
+  font-size: 18px;
+  color: #fff;
+  margin-top: 4px;
+  width: 100%;
+  height: calc(100% - 28px);
+  position: relative;
+ .envvalue-text{
+  position: absolute;
+  top: 33%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+ }
 }
 
 .equipment-status {
diff --git a/src/views/Home.vue b/src/views/Home.vue
index ce401b6..b44eb36 100644
--- a/src/views/Home.vue
+++ b/src/views/Home.vue
@@ -26,15 +26,12 @@
    </div>
 
    <!-- 主要内容区域 -->
-   <div class="main-content" v-loading="isLoading">
-    <!-- 模型 -->
-    <div class="w-full h-full" v-if="currentView === 'model'">
-     <iframe id="model-iframe" class="content-frame w-full h-full" src="" frameborder="0"></iframe>
-    </div>
-    <!-- 720 -->
-    <div :style="isFullScreen ? fullScreenStyle : 'width: 100%; height: 100%;'" v-if="currentView === '720'">
-     <div id="panoviewpreview" class="pano-frame w-full h-full" :style="isFullScreen ? fullScreenPanoStyle : ''">
-     </div>
+   <div class="main-content" :style="isFullScreen  ? fullScreenStyle : ''" v-loading="isLoading">
+    <!-- 模型 / 720 -->
+    <div class="w-full h-full" :style="isFullScreen  ? fullScreenStyle : 'width: 100%; height: 100%;'" v-if="currentView === '720' || currentView === 'model'">
+      <iframe id="model-iframe" class="content-frame w-full h-full" src="" frameborder="0" :style="isFullScreen ? fullScreenModelStyle : ''" v-if="currentView === 'model'"></iframe>
+      <div id="panoviewpreview" class="pano-frame w-full h-full" :style="isFullScreen ? fullScreenPanoStyle : ''" v-if="currentView === '720'"></div>
+      </div>
      <!-- 720全景图版本选择 -->
      <!--<div class="w-full h-[120px] bg-[rgba(19,40,64,0.8)] absolute bottom-0 left-0 right-0 flex items-center py-[10px]" :style="isFullScreen ? 'z-index: 100; height:' : ''" v-if="currentView === '720'">
       <div v-for="item in panoVersionList" :key="item.value" :style="isFullScreen ? 'z-index: 100;' : ''">
@@ -45,7 +42,7 @@
      </div>-->
 
      <!-- 放大镜 -->
-     <div class="w-[80px] h-[80px] bg-[#008C99] absolute top-[-40px] right-[-40px] rounded-[50%]" v-if="currentView === '720'" @click="handleZoomOut">
+     <div class="w-[80px] h-[80px] bg-[#008C99] absolute top-[-40px] right-[-40px] rounded-[50%] z-[100]" v-if="currentView === 'model' || currentView === '720'" @click="handleZoomOut">
       <img src="../assets/images/backgrounds/zoomin.png" alt="放大" class="w-[16px] h-[16px] mt-[50px] ml-[15px] cursor-pointer" v-if="isFullScreen" />
       <img src="../assets/images/backgrounds/zoomout.png" alt="缩小" class="w-[16px] h-[16px] mt-[50px] ml-[15px] cursor-pointer" v-else />
      </div>
@@ -107,6 +104,7 @@
    isFullScreen: false,
    fullScreenStyle: '',
    fullScreenPanoStyle: '',
+   fullScreenModelStyle: '',
    panoList: [{
     value: 'zhinan',
     label: '指南',
@@ -193,11 +191,15 @@
    console.log('放大')
    this.isFullScreen = !this.isFullScreen
    if (this.isFullScreen) {
-    const clientX = document.documentElement.clientWidth || document.body.clientWidth
-    const clientY = document.documentElement.clientHeight || document.body.clientHeight
-    this.fullScreenPanoStyle = `width: 100%; height: 100%; z-index: 100; `
-    this.fullScreenStyle = `width: ${clientX - 40}px; height: ${clientY - 120}px; margin:20px; position: fixed; top: 80px; left: 0;z-index: 100;background-color: #fff;overflow: hidden;`
-   }
+      const clientX = document.documentElement.clientWidth || document.body.clientWidth
+      const clientY = document.documentElement.clientHeight || document.body.clientHeight
+      this.fullScreenPanoStyle = `width: 100%; height: 100%; z-index: 100; `
+      if (this.currentView === '720') {
+        this.fullScreenStyle = `width: ${clientX - 40}px; height: ${clientY - 120}px; margin:20px; position: fixed; top: 80px; left: 0;z-index: 100;background-color: #fff;overflow: hidden;`
+      } else if(this.currentView === 'model'){
+        this.fullScreenModelStyle = `width: ${clientX - 40}px; height: ${clientY - 120}px; margin:20px; position: fixed; top: 80px; left: 0;z-index: 100;background-color: #fff;overflow: hidden;`
+      }
+    }
   },
   handleChange(view) {
    this.isLoading = true
@@ -382,7 +384,7 @@
  display: flex;
  overflow: hidden;
  position: relative;
- height: 52%;
+ height: 98%;
 }
 
 .chart-content {
diff --git a/src/views/ProjectView.vue b/src/views/ProjectView.vue
index 586d7b3..152b5f3 100644
--- a/src/views/ProjectView.vue
+++ b/src/views/ProjectView.vue
@@ -38,9 +38,9 @@
             alt="" 
             class="h-[30px] w-[40px]"
           >
-          <div class="text-white text-[14px]">一期总建筑面积</div>
+          <div class="text-white text-[16px]">一期总建筑面积</div>
           <div class="flex items-center justify-center">
-            <div class="text-[24px] text-[#FFD500] font-bold mr-[8px]">103.18</div>
+            <div class="text-[24px] text-[#FFD500] font-bold mr-[8px]">{{projectInfo.GrossFloorArea ? projectInfo.GrossFloorArea : '103.18'}}</div>
             <div class="text-[14px] text-white">万㎡</div>
           </div>
         </div>
@@ -60,7 +60,7 @@
             alt="" 
             class="h-[30px] w-[40px]"
           >
-          <div class="text-white text-[14px]">目标完成日期</div>
+          <div class="text-white text-[16px]">目标完成日期</div>
           <div class="flex items-center justify-center">
             <div class="text-[24px] text-[#00FFFF] font-bold">{{projectInfo.endDate? projectInfo.endDate : '2028-12-01'}}</div>
           </div>
@@ -109,7 +109,7 @@
         <div class="flex justify-between mb-[10px]">
           <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
             <div class="text-white text-[14px] flex flex-col items-center justify-center">
-              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.buildingUnit}}</div>
+              <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.buildingUnit}}</div>
               <div class="text-[12px] text-[#ddd]">建设单位</div>
             </div>
             <img 
@@ -120,7 +120,7 @@
           </div>
           <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
             <div class="text-white text-[14px] flex flex-col items-center justify-center">
-              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.constructionUnit}}</div>
+              <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.constructionUnit}}</div>
               <div class="text-[12px] text-[#ddd]">施工单位</div>
             </div>
             <img 
@@ -134,7 +134,7 @@
         <div class="flex justify-between">
           <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
             <div class="text-white text-[14px] flex flex-col items-center justify-center">
-              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.supervisionUnit}}</div>
+              <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.supervisionUnit}}</div>
               <div class="text-[12px] text-[#ddd]">监理单位</div>
             </div>
             <img 
@@ -145,7 +145,7 @@
           </div>
           <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
             <div class="text-white text-[14px] flex flex-col items-center justify-center">
-              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.designUnit}}</div>
+              <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.designUnit}}</div>
               <div class="text-[12px] text-[#ddd]">设计单位</div>
             </div>
             <img 
@@ -171,36 +171,24 @@
         </div>
 
         <!-- 表格 -->
-        <div 
-          class="chartTable w-full h-[300px] px-[8px] py-[10px] overflow-y-auto" 
-          :style="{
-            backgroundImage: `url(${tableImage})`,
-            backgroundRepeat: 'no-repeat',
-            backgroundPosition: 'center center',
-            backgroundSize: '100% 100%'
-          }"
+        <el-table
+          ref="filterTable"
+          :data="tableData"
+          class="chartTable w-full h-[300px] overflow-y-auto"
         >
-          <table class="w-full text-white text-[14px] overflow-y-auto">
-            <thead>
-              <tr class="table-header">
-                <th class="py-[8px] text-left pl-[12px]">类型</th>
-                <th class="py-[8px] text-left">阶段</th>
-                <th class="py-[8px] text-left">名称</th>
-              </tr>
-            </thead>
-            <tbody>
-              <tr 
-                v-for="item in tableData" 
-                :key="item.id"
-                class="border-b border-[rgba(255,255,255,0.1)]"
-              >
-                <td class="py-[8px] pl-[12px]">{{ item.UnitTypeText }}</td>
-                <td class="py-[8px]">{{ item.stage ? item.stage : '--' }}</td>
-                <td class="py-[8px]">{{ item.UnitName }}</td>
-              </tr>
-            </tbody>
-          </table>
-        </div>
+          <el-table-column prop="UnitTypeText" label="类型" width="180" />
+          <el-table-column prop="Bind" label="阶段" width="180" 
+          :filters="bindFilters"
+          :filter-method="filterBind"
+          filter-placement="bottom-end">
+            <template slot-scope="scope">
+              <div class="long_title">
+                <span>{{ scope.row.Bind&&scope.row.Bind !== '' ?scope.row.Bind: '--'}}</span>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="UnitName" label="名称" />
+        </el-table>
       </div>
     </div>
   </div>
@@ -233,6 +221,7 @@
         designUnit: 0
       },
       tableData: [],
+      bindFilters: [{ text: '家', value: '家' }], // 示例阶段列表
     };
   },
   mounted() {
@@ -274,6 +263,13 @@
           console.log(result);
           if(result.length > 0) {
             this.tableData = result
+            const newArray = []
+            result.forEach(item => {
+              if(item.Bind && item.Bind !== 'null') {
+                newArray.push({ text: item.Bind, value: item.Bind })
+              }
+            })
+            this.bindFilters = newArray
           } else {
             this.tableData = []
           }
@@ -308,7 +304,16 @@
     },
     searchList() {
       this.getParticipatingList(this.searchText)
-    }
+    },
+    filterBind(value, row) {
+      return row.Bind === value;
+    },
+    resetDateFilter() {
+      this.$refs.filterTable.clearFilter('date');
+    },
+    clearFilter() {
+      this.$refs.filterTable.clearFilter();
+    },
   }
 }
 </script>
@@ -384,6 +389,48 @@
   height: calc(40% - 170px);
   .chartTable{
     height: calc(100% - 10px);
+    
   }
+  ::v-deep .el-table{
+      background-image: url("~@/assets/images/backgrounds/table_bg.png");
+      background-repeat: no-repeat;
+      background-position: center center;
+      background-size: 100% 100%;
+      background-color: #0E2B46;
+      padding: 8px 10px;
+      .el-table__header tr,
+      .el-table__header th {
+        background: linear-gradient(180deg, #3068A5 0%, #1E4066 100%);
+        box-shadow: inset 0px 1px 0px 0px rgba(255,255,255,0.2);
+        padding: 0;
+        height: 32px;
+        .cell{
+          text-align: center;
+        }
+      }
+      tbody{
+        overflow: hidden;
+        tr {
+          .el-table__cell{
+            padding: 10px 0;
+          }
+          td {
+            .cell {
+              color: #fff;
+              font-size: 12px;
+              text-align: center;
+              background-color: transparent !important;
+            }
+          }
+          td.el-table__cell{
+            padding: 10px 0;
+            border-bottom: 1px solid #3685F4;
+          }
+        }
+        tr.el-table__row{
+          background-color: transparent !important;
+        }
+      }
+    }
 }
 </style>
diff --git a/tailwind.config.js b/tailwind.config.js
index 7944e5d..10bff87 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,23 +1,38 @@
+/*
+ * @Author: gjj Ganjj@probim.com.cn
+ * @Date: 2025-02-14 14:32:19
+ * @LastEditors: gjj Ganjj@probim.com.cn
+ * @LastEditTime: 2025-03-17 13:35:25
+ * @FilePath: \北京交通大学\tailwind.config.js
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 /** @type {import('tailwindcss').Config} */
 module.exports = {
-  content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
-  theme: {
-    extend: {
-      fontFamily: {
-        pingfang: ["PingFang SC Semibold", "PingFang SC Regular", "PingFang SC Medium", "Microsoft YaHei"],
-        "pingfang-medium": ["PingFang SC Medium", "Microsoft YaHei"],
-        "pingfang-regular": ["PingFang SC Regular", "Microsoft YaHei"],
-        "pingfang-light": ["PingFang SC Light", "平方 细体", "Microsoft YaHei"],
-        ding: ["DINEngschrift-Alternate"],
-      },
-      spacing: {
-        4.5: "1.125rem",
-        18: "4.5rem",
-      },
-      borderRadius: {
-        half: "50%",
-      },
+    content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
+    theme: {
+        screens: {
+            'sm': '640px',
+            'md': '768px',
+            'lg': '1024px',
+            'xl': '1280px',
+            '2xl': '1536px',
+        },
+        extend: {
+            fontFamily: {
+                pingfang: ["PingFang SC Semibold", "PingFang SC Regular", "PingFang SC Medium", "Microsoft YaHei"],
+                "pingfang-medium": ["PingFang SC Medium", "Microsoft YaHei"],
+                "pingfang-regular": ["PingFang SC Regular", "Microsoft YaHei"],
+                "pingfang-light": ["PingFang SC Light", "平方 细体", "Microsoft YaHei"],
+                ding: ["DINEngschrift-Alternate"],
+            },
+            spacing: {
+                4.5: "1.125rem",
+                18: "4.5rem",
+            },
+            borderRadius: {
+                half: "50%",
+            },
+        },
     },
-  },
-  plugins: [],
-};
+    plugins: [],
+};
\ No newline at end of file
diff --git a/vite.config.js b/vite.config.js
index 55294e5..35a9e98 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -2,7 +2,7 @@
  * @Author: gjj Ganjj@probim.com.cn
  * @Date: 2025-02-14 14:32:19
  * @LastEditors: gjj Ganjj@probim.com.cn
- * @LastEditTime: 2025-02-24 17:26:18
+ * @LastEditTime: 2025-03-17 11:38:32
  * @FilePath: \北京交通大学\vite.config.js
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -12,6 +12,13 @@
 // splitVendorChunk, isCSSRequest
 
 import PluginForViteVue2 from "@vitejs/plugin-vue2";
+// 屏幕适配
+const px2rem = require("postcss-px2rem")
+    // 配置基本大小
+const postcss = px2rem({
+    //配rem基准值 基准大小 baseSize
+    remUnit: 192, // 设稿尺1920/10
+})
 
 export default defineConfig(({ mode }) => {
     return {
@@ -54,6 +61,18 @@
             treeShaking: true,
             drop: mode === "production" ? ["console", "debugger"] : [],
         },
+        chainWebpack(config) {
+            config.module.rule("css").test(/\.css$/).oneOf("vue").use("px2rem-loader").loader("px2rem-loader").options({
+                remUnit: 192,
+            }).end();
+        },
+        css: {
+            loaderOptions: {
+                postcss: {
+                    plugins: [postcss]
+                }
+            }
+        },
         build: {
             minify: "esbuild",
             chunkSizeWarningLimit: 500, //kbs
diff --git a/yarn.lock b/yarn.lock
index ecec6fb..d14e6ca 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -284,10 +284,30 @@
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
+ansi-regex@^0.2.0, ansi-regex@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
+  integrity sha512-sGwIGMjhYdW26/IhwK2gkWWI8DRCVO6uj3hYgHT+zD+QL1pa37tM3ujhyfcJIYSbsxp7Gxhy7zrRW/1AHm4BmA==
+
+ansi-regex@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+  integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
+
 ansi-regex@^5.0.1:
   version "5.0.1"
   resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
   integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
+  integrity sha512-f2PKUkN5QngiSemowa6Mrk9MPCdtFiOSmibjZ+j1qhLGHHYsqZwmBMRF3IRMVXo8sybDqx2fJl2d/8OphBoWkA==
+
+ansi-styles@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+  integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
 
 ansi-styles@^4.1.0:
   version "4.3.0"
@@ -325,6 +345,11 @@
   version "0.4.0"
   resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
   integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+atob@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
 
 autoprefixer@^10.4.13:
   version "10.4.13"
@@ -420,6 +445,17 @@
   resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz#40337f1cf3be7c637b061e2f78582dc1daec0614"
   integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==
 
+chalk@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+  integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
+  dependencies:
+    ansi-styles "^2.2.1"
+    escape-string-regexp "^1.0.2"
+    has-ansi "^2.0.0"
+    strip-ansi "^3.0.0"
+    supports-color "^2.0.0"
+
 chalk@^4.0.0:
   version "4.1.2"
   resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -427,6 +463,17 @@
   dependencies:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
+
+chalk@~0.5.1:
+  version "0.5.1"
+  resolved "https://registry.npmmirror.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
+  integrity sha512-bIKA54hP8iZhyDT81TOsJiQvR1gW+ZYSXFaZUAvoD4wCHdbHY2actmpTE4x344ZlFqHbvoxKOaESULTZN2gstg==
+  dependencies:
+    ansi-styles "^1.1.0"
+    escape-string-regexp "^1.0.0"
+    has-ansi "^0.1.0"
+    strip-ansi "^0.3.0"
+    supports-color "^0.2.0"
 
 "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
   version "3.5.3"
@@ -467,6 +514,11 @@
   dependencies:
     delayed-stream "~1.0.0"
 
+commander@~2.6.0:
+  version "2.6.0"
+  resolved "https://registry.npmmirror.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d"
+  integrity sha512-PhbTMT+ilDXZKqH8xbvuUY2ZEQNef0Q7DKxgoEKb4ccytsdvVVJmYqR0sGbi96nxU6oGrwEIQnclpK2NBZuQlg==
+
 comutils@^1.1.9:
   version "1.1.19"
   resolved "https://registry.npmmirror.com/comutils/-/comutils-1.1.19.tgz#3e07f306abf48e83726511713a72b20565034443"
@@ -496,6 +548,16 @@
   resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
   integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
 
+css@~2.2.0:
+  version "2.2.4"
+  resolved "https://registry.npmmirror.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929"
+  integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==
+  dependencies:
+    inherits "^2.0.3"
+    source-map "^0.6.1"
+    source-map-resolve "^0.5.2"
+    urix "^0.1.0"
+
 cssesc@^3.0.0:
   version "3.0.0"
   resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -522,6 +584,11 @@
   integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
   dependencies:
     ms "2.1.2"
+
+decode-uri-component@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
+  integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
 
 deep-is@^0.1.3:
   version "0.1.4"
@@ -644,6 +711,11 @@
   version "3.1.1"
   resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
   integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2:
+  version "1.0.5"
+  resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
 
 escape-string-regexp@^4.0.0:
   version "4.0.0"
@@ -783,6 +855,11 @@
   resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
   integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
 
+extend@~3.0.0:
+  version "3.0.2"
+  resolved "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
 fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
   resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -875,6 +952,15 @@
   resolved "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
   integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
 
+fs-extra@~0.16.3:
+  version "0.16.5"
+  resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-0.16.5.tgz#1ad661fa6c86c9608cd1b49efc6fce834939a750"
+  integrity sha512-yb7ti8kVH+qboUQWYxUuOPj/qcMUA6lO68ErZoPQOTP+7qroCIN/1gZ1lLk/rs2p0gPFzrvPYujKGnHTu+HHxA==
+  dependencies:
+    graceful-fs "^3.0.5"
+    jsonfile "^2.0.0"
+    rimraf "^2.2.8"
+
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -931,10 +1017,41 @@
   dependencies:
     type-fest "^0.20.2"
 
+graceful-fs@^3.0.5:
+  version "3.0.12"
+  resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-3.0.12.tgz#0034947ce9ed695ec8ab0b854bc919e82b1ffaef"
+  integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==
+  dependencies:
+    natives "^1.1.3"
+
+graceful-fs@^4.1.6:
+  version "4.2.11"
+  resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+  integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
 grapheme-splitter@^1.0.4:
   version "1.0.4"
   resolved "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
   integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
+
+has-ansi@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.npmmirror.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
+  integrity sha512-1YsTg1fk2/6JToQhtZkArMkurq8UoWU1Qe0aR3VUHjgij4nOylSWLWAtBXoZ4/dXOmugfLGm1c+QhuD0JyedFA==
+  dependencies:
+    ansi-regex "^0.2.0"
+
+has-ansi@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+  integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
+  dependencies:
+    ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+  integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==
 
 has-flag@^4.0.0:
   version "4.0.0"
@@ -989,7 +1106,7 @@
     once "^1.3.0"
     wrappy "1"
 
-inherits@2:
+inherits@2, inherits@^2.0.3:
   version "2.0.4"
   resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -1045,6 +1162,11 @@
   resolved "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de"
   integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==
 
+js-base64@^2.1.9:
+  version "2.6.4"
+  resolved "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
+  integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
+
 js-sdsl@^4.1.4:
   version "4.2.0"
   resolved "https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0"
@@ -1074,6 +1196,13 @@
   dependencies:
     minimist "^1.2.0"
 
+jsonfile@^2.0.0:
+  version "2.4.0"
+  resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
+  integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
 keycode@^2.2.0:
   version "2.2.1"
   resolved "https://registry.npmmirror.com/keycode/-/keycode-2.2.1.tgz#09c23b2be0611d26117ea2501c2c391a01f39eff"
@@ -1087,12 +1216,17 @@
     prelude-ls "^1.2.1"
     type-check "~0.4.0"
 
+lib-flexible@^0.3.2:
+  version "0.3.2"
+  resolved "https://registry.npmmirror.com/lib-flexible/-/lib-flexible-0.3.2.tgz#06f5a74832314a2d35c12039bc9c3ca2daeaa426"
+  integrity sha512-9yowMWA70tKhKdCJDaltY0mNQG4OWo7pWKScnTp9aiSxS7s20ZYlwBRE3335nweOf5qKXVC7sDxJwMPM8/MFZg==
+
 lilconfig@^2.0.5, lilconfig@^2.0.6:
   version "2.0.6"
   resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
   integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
 
-loader-utils@^1.0.0:
+loader-utils@^1.0.0, loader-utils@^1.1.0:
   version "1.4.2"
   resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
   integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
@@ -1220,6 +1354,11 @@
   version "4.0.0"
   resolved "https://registry.npmmirror.com/nanoid/-/nanoid-4.0.0.tgz#6e144dee117609232c3f415c34b0e550e64999a5"
   integrity sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==
+
+natives@^1.1.3:
+  version "1.1.6"
+  resolved "https://registry.npmmirror.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb"
+  integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==
 
 natural-compare@^1.4.0:
   version "1.4.0"
@@ -1376,6 +1515,14 @@
   dependencies:
     postcss-selector-parser "^6.0.10"
 
+postcss-px2rem@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.npmmirror.com/postcss-px2rem/-/postcss-px2rem-0.3.0.tgz#0dfa4e8a268fa7478273f0c4b47c619834894041"
+  integrity sha512-ACZRimmOEDma0L/sI5ENREY3BoYB4LNME9iM9VcZU2t598OB9KLEPDYX8JBohNsvwJ+Nvlvk3IcGm0bRqOBC/Q==
+  dependencies:
+    postcss "^5.0.0"
+    px2rem "~0.5.0"
+
 postcss-pxtorem@^6.0.0:
   version "6.0.0"
   resolved "https://registry.npmmirror.com/postcss-pxtorem/-/postcss-pxtorem-6.0.0.tgz#f228a4d05d8a73f0642eabae950e2b19836366d7"
@@ -1393,6 +1540,16 @@
   version "4.2.0"
   resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
   integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+
+postcss@^5.0.0:
+  version "5.2.18"
+  resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
+  integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
+  dependencies:
+    chalk "^1.1.3"
+    js-base64 "^2.1.9"
+    source-map "^0.5.6"
+    supports-color "^3.2.3"
 
 postcss@^8.0.9, postcss@^8.4.14, postcss@^8.4.20:
   version "8.4.21"
@@ -1434,6 +1591,25 @@
   version "2.2.0"
   resolved "https://registry.npmmirror.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74"
   integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==
+
+px2rem-loader@^0.1.9:
+  version "0.1.9"
+  resolved "https://registry.npmmirror.com/px2rem-loader/-/px2rem-loader-0.1.9.tgz#c8f2bf8be8b9a6b43a5f67d14b2febe1160e56a0"
+  integrity sha512-3Ew8At5W/HHIIUe/KZk+FBRRb20KtgP1N1c/BnMlXk6LNkqrFmUIUF35GF/evzNdj/Q63iWJpkmn/c5qSMplRg==
+  dependencies:
+    loader-utils "^1.1.0"
+    px2rem "^0.5.0"
+
+px2rem@^0.5.0, px2rem@~0.5.0:
+  version "0.5.0"
+  resolved "https://registry.npmmirror.com/px2rem/-/px2rem-0.5.0.tgz#24b3a6cf74d14adb4ed776f207871d9893e410e2"
+  integrity sha512-R+LQj3Evbjbpmglo7D0PBVsnAbKP4WSvZEZUnF8RGIpWkIHFeAT+BlDOxxBxKVyMDecmfv9qdzNLTZLMq32osA==
+  dependencies:
+    chalk "~0.5.1"
+    commander "~2.6.0"
+    css "~2.2.0"
+    extend "~3.0.0"
+    fs-extra "~0.16.3"
 
 queue-microtask@^1.2.2:
   version "1.2.3"
@@ -1484,6 +1660,11 @@
   resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
   integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
 
+resolve-url@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+  integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
+
 resolve@^1.1.7, resolve@^1.22.1:
   version "1.22.1"
   resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
@@ -1497,6 +1678,13 @@
   version "1.0.4"
   resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@^2.2.8:
+  version "2.7.1"
+  resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+  dependencies:
+    glob "^7.1.3"
 
 rimraf@^3.0.2:
   version "3.0.2"
@@ -1550,6 +1738,11 @@
     ajv "^6.1.0"
     ajv-keywords "^3.1.0"
 
+screenfull@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba"
+  integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
+
 semver@^7.3.5, semver@^7.3.6:
   version "7.3.8"
   resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
@@ -1574,10 +1767,45 @@
   resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
   integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
 
+source-map-resolve@^0.5.2:
+  version "0.5.3"
+  resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+  integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+  dependencies:
+    atob "^2.1.2"
+    decode-uri-component "^0.2.0"
+    resolve-url "^0.2.1"
+    source-map-url "^0.4.0"
+    urix "^0.1.0"
+
+source-map-url@^0.4.0:
+  version "0.4.1"
+  resolved "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+
+source-map@^0.5.6:
+  version "0.5.7"
+  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
+
 source-map@^0.6.1:
   version "0.6.1"
   resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+strip-ansi@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220"
+  integrity sha512-DerhZL7j6i6/nEnVG0qViKXI0OKouvvpsAiaj7c+LfqZZZxdwZtv8+UiA/w4VUJpT8UzX0pR1dcHOii1GbmruQ==
+  dependencies:
+    ansi-regex "^0.2.1"
+
+strip-ansi@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+  integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
+  dependencies:
+    ansi-regex "^2.0.0"
 
 strip-ansi@^6.0.1:
   version "6.0.1"
@@ -1590,6 +1818,23 @@
   version "3.1.1"
   resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
   integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+supports-color@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.npmmirror.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
+  integrity sha512-tdCZ28MnM7k7cJDJc7Eq80A9CsRFAAOZUy41npOZCs++qSjfIy7o5Rh46CBk+Dk5FbKJ33X3Tqg4YrV07N5RaA==
+
+supports-color@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+  integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
+
+supports-color@^3.2.3:
+  version "3.2.3"
+  resolved "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+  integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==
+  dependencies:
+    has-flag "^1.0.0"
 
 supports-color@^7.1.0:
   version "7.2.0"
@@ -1681,6 +1926,11 @@
   dependencies:
     punycode "^2.1.0"
 
+urix@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+  integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==
+
 url-toolkit@^2.2.1:
   version "2.2.5"
   resolved "https://registry.npmmirror.com/url-toolkit/-/url-toolkit-2.2.5.tgz#58406b18e12c58803e14624df5e374f638b0f607"
@@ -1747,6 +1997,13 @@
     lodash "^4.17.21"
     semver "^7.3.6"
 
+vue-fullscreen@^2.6.1:
+  version "2.6.1"
+  resolved "https://registry.npmmirror.com/vue-fullscreen/-/vue-fullscreen-2.6.1.tgz#447ed7e3a848cffe5870ecbea2c240d8ffacc5f4"
+  integrity sha512-bbMJDKj2ZhsAwLcsvh8oV8WJeqAr2zxTHysvf7H8wSqaJTn5CnHXMSMbP9Tz4L/54I7jNQIdyA7VZ+EKAG+svg==
+  dependencies:
+    screenfull "^5.1.0"
+
 vue-router@^3.6.5:
   version "3.6.5"
   resolved "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz#95847d52b9a7e3f1361cb605c8e6441f202afad8"

--
Gitblit v1.9.3