From dd5fbe2e6cacffa0ff67f0f68c262d14ddfce3cc Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 24 十一月 2023 15:21:56 +0800
Subject: [PATCH] 1.修复指标排名界面的排序换页后重置的问题

---
 src/views/risk_assessment/DataIndexRank.vue |  192 ++++++++++++++++++++++++++----------------------
 1 files changed, 104 insertions(+), 88 deletions(-)

diff --git a/src/views/risk_assessment/DataIndexRank.vue b/src/views/risk_assessment/DataIndexRank.vue
index 04e205d..54a3d0d 100644
--- a/src/views/risk_assessment/DataIndexRank.vue
+++ b/src/views/risk_assessment/DataIndexRank.vue
@@ -3,6 +3,7 @@
 import AreaAndmonitorType from '@/sfc/AreaAndmonitorType.vue'
 import { useCommonFunction } from '../../utils/common.js'
 import requetsApi from '@/api/exportExcel/requetsApi.js'
+import statisticApi from '@/api/statistic/statisticApi.js'
 import dayjs from 'dayjs'
 import ButtonExportExcel from '@/sfc/ButtonExportExcel.vue'
 import ButtonClick from '@/sfc/ButtonClick.vue'
@@ -35,13 +36,16 @@
         // 缁撴潫鏃堕棿
         endTime: ''
       },
-      tableHeight: '600'
+      tableHeight: '600',
+
+      orderProp: 'dayAvg',
+      order: 'descending'
     }
   },
   setup() {
     // 寮曞叆 鐧惧垎鍙锋瘮杈冨ぇ灏� 瀵煎嚭鍔熻兘
-    const { cmpp, exportToExcel } = useCommonFunction()
-    return { cmpp, exportToExcel }
+    const { cmpp, exportToExcel, percentFormatter } = useCommonFunction()
+    return { cmpp, exportToExcel, percentFormatter }
   },
 
   mounted() {
@@ -101,7 +105,6 @@
         }
       }
 
-
       if (columnIndex == 8) {
         if (row.dayValid < 0.9) {
           return 'red-color'
@@ -112,9 +115,9 @@
     // 鍔熻兘锛氳〃鏍奸珮搴︽牴鎹唴瀹硅嚜閫傚簲
     calTableHeight() {
       const h1 = this.$refs.h1.$el.offsetHeight
-      const h2 = this.$refs.h2.$el.offsetHeight;
+      const h2 = this.$refs.h2.$el.offsetHeight
       // 鍏朵腑涓�涓�40鏄洅瀛愮殑鎬诲杈硅窛
-      this.tableHeight = `calc(100vh - ${h1}px - ${h2}px - 40px - 120px - var(--el-main-padding) * 2`;
+      this.tableHeight = `calc(100vh - ${h1}px - ${h2}px - 40px - 120px - var(--el-main-padding) * 2`
     },
     // 椤靛ぇ灏忔敼鍙樻椂瑙﹀彂
     handleSizeChange(val) {
@@ -144,21 +147,30 @@
     },
 
     // 鐐瑰嚮缁熻鎸夐挳
-    fetchData() {
-      let params = {}
-      params['page'] = this.currentPage
-      params['pageSize'] = this.pageSize
-      params['siteName'] = ''
+    fetchData(p) {
+      if (p) {
+        this.orderProp = p.prop
+        this.order = p.order
+      }
+      let params = {
+        page: this.currentPage,
+        pageSize: this.pageSize,
+        siteName: '',
+        orderProp: this.orderProp,
+        //鎺掑簭 ascending 姝e簭锛宒escending 闄嶅簭
+        asc: this.order == 'ascending'
+      }
       if (this.form.beginTime) {
         params['beginTime'] = this.form.beginTime
       }
       if (this.form.endTime) {
         params['endTime'] = this.form.endTime
       }
+
       this.loading = true
       this.queryButton = true
       this.isNoData = false
-      this.$http.get('/dust/analysistime', { params: params }).then((response) => {
+      statisticApi.fetchDayStatisticByOrder(params).then((response) => {
         this.tableData = response.data.data.rows
         this.loading = false
         this.queryButton = false
@@ -182,83 +194,87 @@
 </script>
 
 <template>
-    <el-form :inline="true" :model="form" ref="h1">
-      <el-form-item>
-        <AreaAndmonitorType></AreaAndmonitorType>
-      </el-form-item>
-
-      <el-form-item>
-        <TimeShortCuts timeType="currentMonth" @submit-time="giveTime"></TimeShortCuts>
-      </el-form-item>
-
-      <el-form-item>
-        <ButtonClick
-          style="margin-right: 12px"
-          content="鏁版嵁鎺掑悕"
-          type="primary"
-          :loading="queryButton"
-          @do-search="fetchData"
-        ></ButtonClick>
-        <ButtonExportExcel
-          content="瀵煎嚭鏁版嵁"
-          type="success"
-          :loading="exportButton"
-          @do-export="exportData"
-        ></ButtonExportExcel>
-      </el-form-item>
-    </el-form>
-
-    <el-card v-show="!isNoData">
-      <el-table
-        :data="tableData"
-        :height="tableHeight"
-        style="width: 100%"
-        v-loading="loading"
-        :cell-class-name="tableCellClassName"
-      >
-        <el-table-column
-          type="index"
-          prop="name"
-          label="搴忓彿"
-          :index="indexMethod"
-          fixed
-          show-overflow-tooltip
-        />
-        <el-table-column prop="name" label="鐐逛綅鍚嶇О" show-overflow-tooltip width="300">
-            <template #default="{ row }">
-              <el-button type="primary" text   @click="openDetail(row)">
-              <span class="rank-site">{{row.name
-              }}</span></el-button>
-            </template>
-        </el-table-column>
-
-        <el-table-column prop="mnCode" label="璁惧缂栫爜" show-overflow-tooltip />
-
-        <el-table-column prop="lst" label="鐩戞祴鏃ユ湡" sortable show-overflow-tooltip />
-
-        <el-table-column prop="dayAvg" label="鏃ュ钩鍧囧��" sortable show-overflow-tooltip />
-        <el-table-column prop="min" label="鏃ユ渶灏忓��" sortable show-overflow-tooltip />
-        <el-table-column prop="max" label="鏃ユ渶澶у��" sortable show-overflow-tooltip />
-
-        <el-table-column prop="dayOnline" label="鏃ュ湪绾跨巼" sortable show-overflow-tooltip />
-
-        <el-table-column prop="dayValid" label="鏃ユ湁鏁堢巼" sortable show-overflow-tooltip />
-
-        <el-table-column prop="dayExceeding" label="鏃ヨ秴鏍囩巼" sortable show-overflow-tooltip />
-      </el-table>
-
-      <el-pagination
-        ref="h2"
-        :page-sizes="[10, 20, 50, 100]"
-        :total="total"
-        layout="total,sizes, prev, pager, next, jumper"
-        v-model:current-page="currentPage"
-        v-model:page-size="pageSize"
-        @update:current-page="handleCurrentChange"
-        @update:page-size="handleSizeChange"
+  <el-form :inline="true" :model="form" ref="h1">
+    <el-form-item>
+      <AreaAndmonitorType></AreaAndmonitorType>
+    </el-form-item>
+    <el-form-item>
+      <TimeShortCuts timeType="currentMonth" @submit-time="giveTime"></TimeShortCuts>
+    </el-form-item>
+    <el-form-item>
+      <ButtonClick
+        style="margin-right: 12px"
+        content="鏁版嵁鎺掑悕"
+        type="primary"
+        :loading="queryButton"
+        @do-search="fetchData"
+      ></ButtonClick>
+      <ButtonExportExcel
+        content="瀵煎嚭鏁版嵁"
+        type="success"
+        :loading="exportButton"
+        @do-export="exportData"
+      ></ButtonExportExcel>
+    </el-form-item>
+  </el-form>
+  <el-card v-show="!isNoData">
+    <el-table
+      :data="tableData"
+      :height="tableHeight"
+      style="width: 100%"
+      v-loading="loading"
+      :cell-class-name="tableCellClassName"
+      @sort-change="fetchData"
+    >
+      <el-table-column
+        type="index"
+        prop="name"
+        label="搴忓彿"
+        :index="indexMethod"
+        fixed
+        show-overflow-tooltip
       />
-    </el-card>
-    <el-empty v-show="isNoData" :image-size="200" />
+      <el-table-column prop="name" label="鐐逛綅鍚嶇О" show-overflow-tooltip width="300">
+        <template #default="{ row }">
+          <el-button type="primary" text @click="openDetail(row)">
+            <span class="rank-site">{{ row.name }}</span></el-button
+          >
+        </template>
+      </el-table-column>
+      <el-table-column prop="mnCode" label="璁惧缂栫爜" show-overflow-tooltip />
+      <el-table-column prop="lst" label="鐩戞祴鏃ユ湡" sortable="custom" show-overflow-tooltip />
+      <el-table-column prop="dayAvg" label="鏃ュ钩鍧囧��" sortable="custom" show-overflow-tooltip />
+      <el-table-column prop="min" label="鏃ユ渶灏忓��" sortable="custom" show-overflow-tooltip />
+      <el-table-column prop="max" label="鏃ユ渶澶у��" sortable="custom" show-overflow-tooltip />
+      <el-table-column prop="dayOnline" label="鏃ュ湪绾跨巼" sortable="custom" show-overflow-tooltip>
+        <template #default="{ row }">
+          {{ percentFormatter(row.dayOnline) }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="dayValid" label="鏃ユ湁鏁堢巼" sortable="custom" show-overflow-tooltip>
+        <template #default="{ row }">
+          {{ percentFormatter(row.dayValid) }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="dayExceeding" label="鏃ヨ秴鏍囩巼" sortable="custom" show-overflow-tooltip>
+        <template #default="{ row }">
+          {{ percentFormatter(row.dayExceeding) }}
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <el-pagination
+      ref="h2"
+      :page-sizes="[10, 20, 50, 100]"
+      :total="total"
+      layout="total,sizes, prev, pager, next, jumper"
+      v-model:current-page="currentPage"
+      v-model:page-size="pageSize"
+      @update:current-page="handleCurrentChange"
+      @update:page-size="handleSizeChange"
+    />
+  </el-card>
+  <el-empty v-show="isNoData" :image-size="200" />
 </template>
 
 <style scoped>

--
Gitblit v1.9.3