<!doctype html>
<html lang="en">

<head>
  <!-- Import style -->
  <link rel="stylesheet" href="../index.css" />
  <!-- Import Vue 3 -->
  <script src="../vue.global.prod.js"></script>
  <!-- Import component library -->
  <script src="../index.full.min.js"></script>
  <meta charset="UTF-8">
  <title>Coverage</title>
</head>

<body>
  <div id="app" class="common-layout">
    <el-container>
      <el-header>
        <el-row>
          <span>All Files Coverage</span>
          <el-divider />
        </el-row>
      </el-header>
      <el-main>
        <el-row>
          <el-col :span="8">
            <div class="statistic-card">
              <el-statistic :precision="2" :value="tableData.summary.functions.pct">
                <template #title>
                  <div style="display: inline-flex; align-items: center">
                    Functions
                  </div>
                </template>
                <template #suffix>%</template>
              </el-statistic>
              <div class="statistic-footer">
                <div class="footer-item">
                  <span>{{tableData.summary.functions.covered}}/{{tableData.summary.functions.total}}</span>
                </div>
              </div>
            </div>
          </el-col>

          <el-col :span="8">
            <div class="statistic-card">
              <el-statistic :precision="2" :value="tableData.summary.branches.pct">
                <template #title>
                  <div style="display: inline-flex; align-items: center">
                    Branches
                  </div>
                </template>
                <template #suffix>%</template>
              </el-statistic>
              <div class="statistic-footer">
                <div class="footer-item">
                  <span>{{tableData.summary.branches.covered}}/{{tableData.summary.branches.total}}</span>
                </div>
              </div>
            </div>
          </el-col>

          <el-col :span="8">
            <div class="statistic-card">
              <el-statistic :precision="2" :value="tableData.summary.lines.pct">
                <template #title>
                  <div style="display: inline-flex; align-items: center">
                    Lines
                  </div>
                </template>
                <template #suffix>%</template>
              </el-statistic>
              <div class="statistic-footer">
                <div class="footer-item">
                  <span>{{tableData.summary.lines.covered}}/{{tableData.summary.lines.total}}</span>
                </div>
              </div>
            </div>
          </el-col>
        </el-row>
        <el-row>
          <el-divider />
        </el-row>

        <el-table :data="tableData.files" :default-sort="{ prop: 'file', order: 'ascending' }" :row-class-name="tableRowClassName" border
          style="width: 100%">
          <el-table-column sortable prop="path" label="File" width="600">
            <template #default="scope"> <el-link type="primary"
                :href="scope.row.link">{{scope.row.path}}</el-link></template>
          </el-table-column>
          <el-table-column sortable prop="summary.functions.pct" label="Functions"></el-table-column>
          <el-table-column prop="summary.functions.total,summary.functions.covered" label="">
            <template #default="scope">{{scope.row.summary.functions.covered}}/{{scope.row.summary.functions.total}}</template>
          </el-table-column>
          <el-table-column sortable prop="summary.branches.pct" label="Branches"></el-table-column>
          <el-table-column prop="summary.branches.total,summary.branches.covered" label="">
            <template #default="scope">{{scope.row.summary.branches.covered}}/{{scope.row.summary.branches.total}}</template>
          </el-table-column>
          <el-table-column sortable prop="summary.lines.pct" label="Lines"></el-table-column>
          <el-table-column prop="summary.lines.total,summary.lines.covered" label="">
            <template #default="scope">{{scope.row.summary.lines.covered}}/{{scope.row.summary.lines.total}}</template>
          </el-table-column>
        </el-table>
      </el-main>
      <el-footer align="middle" class="footer">
        Code coverage generated by <el-link href="https://github.com/SMAT-Lab/bjc" type="primary" target="_blank">bjc</el-link> at {{tableData.date}}
      </el-footer>
    </el-container>
  </div>
</body>

<script>
  const App = {
    data() {
      return {
        tableData: {"date":"Fri Jul 31 2026 16:52:24 GMT+0800 (China Standard Time)","files":[{"version":"bjc v1.0.0","versionCode":10000,"path":"PrewarmEnvironment.ets","hash":"00a776bdb85c239ffd36f3f913174cb5bcce7dcd0d9f3390e0c9b5c7e6b47592","lineCnt":62,"count":0,"projectPath":"/Users/qinzhiqiang/Git/frontend/h5-in-app-integration/harmonyos-arkts","functions":[{"name":"manifestUrlOf","count":3,"regions":[{"startLoc":{"line":19,"col":1},"endLoc":{"line":29,"col":2},"count":3,"ignored":0},{"startLoc":{"line":21,"col":5},"endLoc":{"line":22,"col":80},"count":1,"ignored":0},{"startLoc":{"line":23,"col":5},"endLoc":{"line":24,"col":79},"count":1,"ignored":0},{"startLoc":{"line":26,"col":5},"endLoc":{"line":27,"col":75},"count":1,"ignored":0},{"startLoc":{"line":25,"col":5},"endLoc":{"line":25,"col":34},"count":1,"ignored":0}],"branches":[{"startLoc":{"line":21,"col":10},"endLoc":{"line":21,"col":33},"trueCount":1,"falseCount":3,"group":[0,1,2,3],"ignored":0},{"startLoc":{"line":23,"col":10},"endLoc":{"line":23,"col":33},"trueCount":1,"falseCount":3,"group":[0,1,2,3],"ignored":0},{"startLoc":{"line":25,"col":10},"endLoc":{"line":25,"col":33},"trueCount":1,"falseCount":3,"group":[0,1,2,3],"ignored":0},{"startLoc":{"line":26,"col":5},"endLoc":{"line":26,"col":5},"trueCount":1,"falseCount":3,"group":[0,1,2,3],"ignored":0}],"ignored":0,"index":0},{"name":"knownQuickHostOf","count":1,"regions":[{"startLoc":{"line":34,"col":1},"endLoc":{"line":44,"col":2},"count":1,"ignored":0},{"startLoc":{"line":36,"col":5},"endLoc":{"line":37,"col":43},"count":0,"ignored":0},{"startLoc":{"line":38,"col":5},"endLoc":{"line":39,"col":43},"count":0,"ignored":0},{"startLoc":{"line":41,"col":5},"endLoc":{"line":42,"col":39},"count":1,"ignored":0},{"startLoc":{"line":40,"col":5},"endLoc":{"line":40,"col":34},"count":1,"ignored":0}],"branches":[{"startLoc":{"line":36,"col":10},"endLoc":{"line":36,"col":33},"trueCount":0,"falseCount":2,"group":[0,1,2,3],"ignored":0},{"startLoc":{"line":38,"col":10},"endLoc":{"line":38,"col":33},"trueCount":0,"falseCount":2,"group":[0,1,2,3],"ignored":0},{"startLoc":{"line":40,"col":10},"endLoc":{"line":40,"col":33},"trueCount":1,"falseCount":1,"group":[0,1,2,3],"ignored":0},{"startLoc":{"line":41,"col":5},"endLoc":{"line":41,"col":5},"trueCount":1,"falseCount":1,"group":[0,1,2,3],"ignored":0}],"ignored":0,"index":1},{"name":"environmentOfHost","count":3,"regions":[{"startLoc":{"line":49,"col":1},"endLoc":{"line":61,"col":2},"count":3,"ignored":0},{"startLoc":{"line":51,"col":39},"endLoc":{"line":53,"col":4},"count":1,"ignored":0},{"startLoc":{"line":54,"col":43},"endLoc":{"line":56,"col":4},"count":1,"ignored":0},{"startLoc":{"line":57,"col":43},"endLoc":{"line":59,"col":4},"count":0,"ignored":0},{"startLoc":{"line":60,"col":3},"endLoc":{"line":61,"col":2},"count":1,"ignored":0}],"branches":[{"startLoc":{"line":51,"col":7},"endLoc":{"line":51,"col":37},"trueCount":1,"falseCount":2,"group":[],"ignored":0},{"startLoc":{"line":54,"col":7},"endLoc":{"line":54,"col":41},"trueCount":1,"falseCount":1,"group":[],"ignored":0},{"startLoc":{"line":57,"col":7},"endLoc":{"line":57,"col":41},"trueCount":0,"falseCount":1,"group":[],"ignored":0}],"ignored":0,"index":2}],"exeLine":{"0":7,"1":9,"2":11,"3":13,"4":19,"5":20,"6":21,"7":22,"8":23,"9":24,"10":25,"11":26,"12":27,"13":34,"14":35,"15":36,"16":37,"17":38,"18":39,"19":40,"20":41,"21":42,"22":49,"23":50,"24":51,"25":52,"26":54,"27":55,"28":57,"29":58,"30":60},"summary":{"lines":{"total":27,"covered":24,"pct":88.89,"executedLineCount":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,4,1,4,1,4,4,1,-1,-1,-1,-1,-1,-1,1,1,2,0,2,0,2,2,1,-1,-1,-1,-1,-1,-1,3,3,3,1,-1,2,1,-1,1,0,-1,1,-1,-1]},"functions":{"total":3,"covered":3,"pct":100},"branches":{"total":14,"covered":11,"pct":78.57}},"link":"PrewarmEnvironment.ets.html"},{"version":"bjc v1.0.0","versionCode":10000,"path":"SignResult.ets","hash":"34645a304c27f2b7a5995e8a5c267ce180b1ffe09dc2067ae6e5dc09e3eb31e5","lineCnt":76,"count":0,"projectPath":"/Users/qinzhiqiang/Git/frontend/h5-in-app-integration/harmonyos-arkts","functions":[{"name":"SignResult.constructor","count":15,"regions":[{"startLoc":{"line":49,"col":3},"endLoc":{"line":65,"col":4},"count":15,"ignored":0},{"startLoc":{"line":58,"col":5},"endLoc":{"line":65,"col":4},"count":15,"ignored":0}],"branches":[],"ignored":0,"index":0},{"name":"SignResult.EMPTY","count":4,"regions":[{"startLoc":{"line":72,"col":3},"endLoc":{"line":74,"col":4},"count":4,"ignored":0},{"startLoc":{"line":73,"col":5},"endLoc":{"line":74,"col":4},"count":4,"ignored":0}],"branches":[],"ignored":0,"index":1}],"exeLine":{"0":15,"1":17,"2":20,"3":23,"4":30,"5":37,"6":40,"7":47,"8":50,"9":51,"10":52,"11":53,"12":54,"13":55,"14":56,"15":57,"16":58,"17":59,"18":60,"19":61,"20":62,"21":63,"22":64,"23":72,"24":73},"summary":{"lines":{"total":17,"covered":17,"pct":100,"executedLineCount":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,-1,-1,-1,-1,-1,-1,-1,4,4,-1,-1,-1]},"functions":{"total":2,"covered":2,"pct":100},"branches":{"total":0,"covered":0,"pct":100}},"link":"SignResult.ets.html"},{"version":"bjc v1.0.0","versionCode":10000,"path":"SignCallback.ets","hash":"514b7e0646ab35edb5f64d690f5d820d285ad1c1c46cca3df537005711ca7b8a","lineCnt":37,"count":0,"projectPath":"/Users/qinzhiqiang/Git/frontend/h5-in-app-integration/harmonyos-arkts","functions":[{"name":"anonymous_0","count":0,"regions":[{"startLoc":{"line":9,"col":28},"endLoc":{"line":9,"col":56},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":0},{"name":"anonymous_1","count":0,"regions":[{"startLoc":{"line":12,"col":26},"endLoc":{"line":12,"col":51},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":1},{"name":"anonymous_2","count":0,"regions":[{"startLoc":{"line":20,"col":37},"endLoc":{"line":20,"col":47},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":2},{"name":"anonymous_3","count":0,"regions":[{"startLoc":{"line":29,"col":30},"endLoc":{"line":29,"col":73},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":3},{"name":"anonymous_4","count":0,"regions":[{"startLoc":{"line":36,"col":33},"endLoc":{"line":36,"col":77},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":4}],"exeLine":{"0":1,"1":2,"2":9,"3":12,"4":20,"5":29,"6":36},"summary":{"lines":{"total":5,"covered":0,"pct":0,"executedLineCount":[-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,0,-1]},"functions":{"total":5,"covered":0,"pct":0},"branches":{"total":0,"covered":0,"pct":100}},"link":"SignCallback.ets.html"},{"version":"bjc v1.0.0","versionCode":10000,"path":"SdkEvent.ets","hash":"bbffa2a5f8fad83dba31e9d1a204188c6ff3dc5fa574eb62ee78d7e87a0cf6c8","lineCnt":205,"count":0,"projectPath":"/Users/qinzhiqiang/Git/frontend/h5-in-app-integration/harmonyos-arkts","functions":[{"name":"PageStartedEvent.constructor","count":1,"regions":[{"startLoc":{"line":28,"col":3},"endLoc":{"line":30,"col":4},"count":1,"ignored":0},{"startLoc":{"line":29,"col":5},"endLoc":{"line":30,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":0},{"name":"PageFinishedEvent.constructor","count":1,"regions":[{"startLoc":{"line":37,"col":3},"endLoc":{"line":39,"col":4},"count":1,"ignored":0},{"startLoc":{"line":38,"col":5},"endLoc":{"line":39,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":1},{"name":"PermissionGrantedEvent.constructor","count":1,"regions":[{"startLoc":{"line":48,"col":3},"endLoc":{"line":50,"col":4},"count":1,"ignored":0},{"startLoc":{"line":49,"col":5},"endLoc":{"line":50,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":2},{"name":"PermissionDeniedEvent.constructor","count":1,"regions":[{"startLoc":{"line":57,"col":3},"endLoc":{"line":59,"col":4},"count":1,"ignored":0},{"startLoc":{"line":58,"col":5},"endLoc":{"line":59,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":3},{"name":"SchemeInterceptedEvent.constructor","count":1,"regions":[{"startLoc":{"line":69,"col":3},"endLoc":{"line":72,"col":4},"count":1,"ignored":0},{"startLoc":{"line":70,"col":5},"endLoc":{"line":72,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":4},{"name":"SchemeNotMatchedEvent.constructor","count":1,"regions":[{"startLoc":{"line":79,"col":3},"endLoc":{"line":81,"col":4},"count":1,"ignored":0},{"startLoc":{"line":80,"col":5},"endLoc":{"line":81,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":5},{"name":"LoadErrorEvent.constructor","count":1,"regions":[{"startLoc":{"line":92,"col":3},"endLoc":{"line":96,"col":4},"count":1,"ignored":0},{"startLoc":{"line":93,"col":5},"endLoc":{"line":96,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":6},{"name":"HttpErrorEvent.constructor","count":1,"regions":[{"startLoc":{"line":105,"col":3},"endLoc":{"line":109,"col":4},"count":1,"ignored":0},{"startLoc":{"line":106,"col":5},"endLoc":{"line":109,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":7},{"name":"SslErrorEvent.constructor","count":1,"regions":[{"startLoc":{"line":117,"col":3},"endLoc":{"line":120,"col":4},"count":1,"ignored":0},{"startLoc":{"line":118,"col":5},"endLoc":{"line":120,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":8},{"name":"DownloadStartEvent.constructor","count":1,"regions":[{"startLoc":{"line":131,"col":3},"endLoc":{"line":135,"col":4},"count":1,"ignored":0},{"startLoc":{"line":132,"col":5},"endLoc":{"line":135,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":9},{"name":"DownloadFailedEvent.constructor","count":1,"regions":[{"startLoc":{"line":143,"col":3},"endLoc":{"line":146,"col":4},"count":1,"ignored":0},{"startLoc":{"line":144,"col":5},"endLoc":{"line":146,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":10},{"name":"DownloadCompletedEvent.constructor","count":0,"regions":[{"startLoc":{"line":154,"col":3},"endLoc":{"line":157,"col":4},"count":0,"ignored":0},{"startLoc":{"line":155,"col":5},"endLoc":{"line":157,"col":4},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":11},{"name":"RenderProcessGoneEvent.constructor","count":1,"regions":[{"startLoc":{"line":168,"col":3},"endLoc":{"line":171,"col":4},"count":1,"ignored":0},{"startLoc":{"line":169,"col":5},"endLoc":{"line":171,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":12},{"name":"UserAgentInjectFailedEvent.constructor","count":1,"regions":[{"startLoc":{"line":180,"col":3},"endLoc":{"line":182,"col":4},"count":1,"ignored":0},{"startLoc":{"line":181,"col":5},"endLoc":{"line":182,"col":4},"count":1,"ignored":0}],"branches":[],"ignored":0,"index":13}],"exeLine":{"0":24,"1":25,"2":26,"3":28,"4":29,"5":33,"6":34,"7":35,"8":37,"9":38,"10":44,"11":45,"12":46,"13":48,"14":49,"15":53,"16":54,"17":55,"18":57,"19":58,"20":64,"21":65,"22":66,"23":67,"24":69,"25":70,"26":71,"27":75,"28":76,"29":77,"30":79,"31":80,"32":86,"33":87,"34":88,"35":89,"36":90,"37":92,"38":93,"39":94,"40":95,"41":99,"42":100,"43":101,"44":102,"45":103,"46":105,"47":106,"48":107,"49":108,"50":112,"51":113,"52":114,"53":115,"54":117,"55":118,"56":119,"57":125,"58":126,"59":127,"60":128,"61":129,"62":131,"63":132,"64":133,"65":134,"66":138,"67":139,"68":140,"69":141,"70":143,"71":144,"72":145,"73":149,"74":150,"75":151,"76":152,"77":154,"78":155,"79":156,"80":162,"81":163,"82":165,"83":166,"84":168,"85":169,"86":170,"87":176,"88":177,"89":178,"90":180,"91":181,"92":190,"93":191,"94":192,"95":193,"96":194,"97":195,"98":196,"99":197,"100":198,"101":199,"102":200,"103":201,"104":202,"105":203,"106":204},"summary":{"lines":{"total":39,"covered":36,"pct":92.31,"executedLineCount":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},"functions":{"total":14,"covered":13,"pct":92.86},"branches":{"total":0,"covered":0,"pct":100}},"link":"SdkEvent.ets.html"},{"version":"bjc v1.0.0","versionCode":10000,"path":"SignResultStatus.ets","hash":"89b8e2ad4a139ef9b212c106c554b43d991aed8390d4d6f09a2b99568eab1ffd","lineCnt":15,"count":0,"projectPath":"/Users/qinzhiqiang/Git/frontend/h5-in-app-integration/harmonyos-arkts","functions":[{"name":"SignResultStatus.constructor","count":0,"regions":[{"startLoc":{"line":13,"col":3},"endLoc":{"line":13,"col":27},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":0}],"exeLine":{"0":6,"1":8,"2":11,"3":13},"summary":{"lines":{"total":1,"covered":0,"pct":0,"executedLineCount":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1]},"functions":{"total":1,"covered":0,"pct":0},"branches":{"total":0,"covered":0,"pct":100}},"link":"SignResultStatus.ets.html"},{"version":"bjc v1.0.0","versionCode":10000,"path":"SignAction.ets","hash":"c43a2f2b1ed65f02f2d53761fa0552e3ca2261951dcb668b6b82fd51f6fe4ee9","lineCnt":26,"count":0,"projectPath":"/Users/qinzhiqiang/Git/frontend/h5-in-app-integration/harmonyos-arkts","functions":[{"name":"SignAction.constructor","count":0,"regions":[{"startLoc":{"line":24,"col":3},"endLoc":{"line":24,"col":27},"count":0,"ignored":0}],"branches":[],"ignored":0,"index":0}],"exeLine":{"0":7,"1":9,"2":12,"3":15,"4":18,"5":21,"6":24},"summary":{"lines":{"total":1,"covered":0,"pct":0,"executedLineCount":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1]},"functions":{"total":1,"covered":0,"pct":0},"branches":{"total":0,"covered":0,"pct":100}},"link":"SignAction.ets.html"}],"summary":{"lines":{"total":90,"covered":77,"pct":85.56},"functions":{"total":26,"covered":18,"pct":69.23},"branches":{"total":14,"covered":11,"pct":78.57}}},
        tableRowClassName: ({row, rowIndex}) => {
          if (row.summary.lines.pct > 70) {
            return 'high-row'
          } else if (row.summary.lines.pct > 33) {
            return 'medium-row'
          }
          return 'low-row'
        }
      };
    }
  };

  const app = Vue.createApp(App);
  app.use(ElementPlus);
  app.mount("#app");
</script>

<style scoped>
  .el-statistic {
    --el-statistic-content-font-size: 28px;
  }

  .statistic-card {
    height: 100%;
    padding: 20px;
    border-radius: 4px;
    background-color: var(--el-bg-color-overlay);
  }

  .statistic-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--el-text-color-regular);
    margin-top: 16px;
  }

  .statistic-footer .footer-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .statistic-footer .footer-item span:last-child {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
  }

  .el-container {
    min-height: 100vh;
    height: 100%;
  }

  .footer {
    font-size: small;
  }

  .el-table .low-row {
    --el-table-tr-bg-color: var(--el-color-error-light-9);
  }

  .el-table .medium-row {
    --el-table-tr-bg-color: var(--el-color-warning-light-9);
  }
  .el-table .high-row {
    --el-table-tr-bg-color: var(--el-color-success-light-9);
  }
</style>

</html>