From 6738d48087c2c89d136eaf2a494c61392e087b54 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Tue, 21 Nov 2023 14:50:02 +0800
Subject: [PATCH] fix:表格滚动修改

---
 src/views/toCarryOutLegislativeReforms/summaryPage/index.vue |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 100 insertions(+), 15 deletions(-)

diff --git a/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue b/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
index c1f050c..d53fbe1 100644
--- a/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
+++ b/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
@@ -1,14 +1,14 @@
 <template>
   <div class="main">
     <div class="timeSelect">
-      <el-radio-group v-model="searchForm.number" style="margin-left:20px" @input="changeNumber">
+      <el-radio-group v-model="searchForm.number" style="margin-left:20px" @input="changeNumber('timeMouted')">
         <el-radio-button label="1">���1������</el-radio-button>
         <el-radio-button label="2">���2������</el-radio-button>
         <el-radio-button label="3">���3������</el-radio-button>
         <el-radio-button label="6">���6������</el-radio-button>
         <el-radio-button label="12">���12������</el-radio-button>
       </el-radio-group>
-      <el-date-picker v-model="timeInterval" el-time-picker type="daterange" value-format="yyyy-MM-dd" range-separator="���" start-placeholder="������������" end-placeholder="������������" @change="changeNumber" />
+      <el-date-picker v-model="timeInterval" el-time-picker type="daterange" value-format="yyyy-MM-dd" range-separator="���" start-placeholder="������������" end-placeholder="������������" @change="changeNumber('timeValue')" />
     </div>
     <div class="agentSummary">
       <div class="circle">
@@ -40,20 +40,48 @@
                 ������
               </el-button>
             </div>
-            <div class="tab">
-              <el-table :data="tableData" border max-height="400" style="width: 100%" :header-cell-style="{
+            <div class="min">
+              <div class="tab" style="display: inline-block; width: 100%">
+                <el-table :data="tableData" class="top" border style="width: 100%" :header-cell-style="{
                   background: '#99D4FF', color: '#101111', fontSize: '16px'
                 }">
-                <el-table-column align="center" prop="unitName" label="������������" />
-                <el-table-column align="center" prop="total" label="���������" />
-                <el-table-column align="center" prop="number" label="���������" />
-                <el-table-column align="center" prop="unNumber" label="���������" />
-                <el-table-column align="center" prop="rate" label="���������" />
-                <el-table-column align="center" prop="deduction" label="������" />
-                <el-table-column align="center" prop="marks" label="������" />
-                <el-table-column align="center" prop="totalPoints" label="���������" />
-              </el-table>
+                  <el-table-column align="center" type="index" width="60" label="������" />
+                  <el-table-column align="center" prop="unitName" label="������������" />
+                  <el-table-column align="center" prop="total" label="���������" />
+                  <el-table-column align="center" prop="number" label="���������" />
+                  <el-table-column align="center" prop="unNumber" label="���������" />
+                  <el-table-column align="center" prop="rate" label="���������" />
+                  <el-table-column align="center" prop="deduction" label="������" />
+                  <el-table-column align="center" prop="marks" label="������" />
+                  <el-table-column align="center" prop="totalPoints" label="���������" />
+                </el-table>
+                <vueSeamless :data="tableData" v-if="tableData.length>5" ref="scroll3" :pause="true" class="seamless-warp" style="width: 100%;" :class-option="classOption">
+                  <el-table :data="tableData" v-if="tableData.length>0" class="bottom" border style="width: 100%;margin-bottom:50px">
+                    <el-table-column align="center" type="index" width="60" />
+                    <el-table-column align="center" prop="unitName" label="������������" />
+                    <el-table-column align="center" prop="total" label="���������" />
+                    <el-table-column align="center" prop="number" label="���������" />
+                    <el-table-column align="center" prop="unNumber" label="���������" />
+                    <el-table-column align="center" prop="rate" label="���������" />
+                    <el-table-column align="center" prop="deduction" label="������" />
+                    <el-table-column align="center" prop="marks" label="������" />
+                    <el-table-column align="center" prop="totalPoints" label="���������" />
+                  </el-table>
+                </vueSeamless>
+                <el-table :data="tableData" v-else class="bottom" border style="width: 100%;margin-bottom:50px">
+                  <el-table-column align="center" type="index" width="60" />
+                  <el-table-column align="center" prop="unitName" label="������������" />
+                  <el-table-column align="center" prop="total" label="���������" />
+                  <el-table-column align="center" prop="number" label="���������" />
+                  <el-table-column align="center" prop="unNumber" label="���������" />
+                  <el-table-column align="center" prop="rate" label="���������" />
+                  <el-table-column align="center" prop="deduction" label="������" />
+                  <el-table-column align="center" prop="marks" label="������" />
+                  <el-table-column align="center" prop="totalPoints" label="���������" />
+                </el-table>
+              </div>
             </div>
+
           </div>
         </el-tab-pane>
         <el-tab-pane label="������" name="second">
@@ -86,10 +114,12 @@
 </template>
 
 <script>
+import vueSeamless from 'vue-seamless-scroll'
 import pollutionClassificationEcharts from '@/views/toCarryOutLegislativeReforms/summaryPage/components/pollutionClassificationEcharts'
 import reportTypeEcharts from '@/views/toCarryOutLegislativeReforms/summaryPage/components/reportTypeEcharts'
 export default {
   components: {
+    vueSeamless,
     pollutionClassificationEcharts,
     reportTypeEcharts
   },
@@ -115,7 +145,15 @@
         overdue: ''
       },
       chartData: [],
-      cylindricalityData: []
+      cylindricalityData: [],
+      tableDataTotal: 0
+    }
+  },
+  computed: {
+    classOption() {
+      let data = this.loadMore()
+      console.log('return ', data)
+      return data
     }
   },
   created() {
@@ -124,6 +162,32 @@
     this.handleSearch()
   },
   methods: {
+    loadMore() {
+      let data = {}
+      if (this.tableDataTotal > 5) {
+        data = {
+          step: 0.8, // ������������������������������
+          limitMoveNum: this.tableData.length, // ������������������������������ this.tableData
+          hoverStop: true, // ������������������������stop
+          autoPlay: true,
+          direction: 1, // 0������ 1������ 2������ 3������
+          openWatch: true, // ������������������������������dom
+          singleHeight: 30, // ���������������������������(���������0���������������������������) direction => 0/1
+          singleWidth: 0, // ���������������������������(���������0���������������������������) direction => 2/3
+          waitTime: 1000 // ���������������������������(���������1000ms)
+        }
+      } else {
+        this.$refs.scroll3 && this.$refs.scroll3._cancle()
+
+        data = {
+          step: 0, // ������������������������������
+          limitMoveNum: this.tableData.length,
+          openWatch: true
+        }
+      }
+      console.log('data', data)
+      return data
+    },
     ecxport() {
       this.$request({
         url: '/allocation/unitExel',
@@ -164,6 +228,11 @@
       return data ? data.unitName : ''
     },
     changeNumber(val) {
+      if (val === 'timeValue') {
+        this.searchForm.number = null
+      } else {
+        this.timeInterval = []
+      }
       this.handleSearch()
     },
     handleClick(tab, event) {
@@ -202,7 +271,8 @@
       }).then(res => {
         if (res.code === 0) {
           this.responeForm = res.data
-          this.tableData = res.data.unitView
+          this.tableData = res.data.unitView || []
+          this.tableDataTotal = this.tableData.length
           this.chartData = res.data.polluteType
           this.cylindricalityData = res.data.escalationType
         } else {
@@ -336,5 +406,20 @@
       }
     }
   }
+  .seamless-warp {
+    height: 380px;
+    overflow: hidden;
+  }
+  .min {
+    display: flex;
+    width: 100%;
+  }
+  .top /deep/.el-table__body-wrapper {
+    display: none;
+  }
+  .bottom /deep/.el-table__header-wrapper {
+    display: none;
+    width: 100%;
+  }
 }
 </style>

--
Gitblit v1.8.0