From 25aaab3aabb463d73015a1d051799692a24ed04d Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Thu, 23 Nov 2023 09:48:20 +0800
Subject: [PATCH] Merge branch 'feature_1.0'

---
 src/store/modules/user.js                                    |  130 +++++++------
 .eslintrc.js                                                 |   15 +
 src/store/index.js                                           |    3 
 src/store/modules/downLoadProgress.js                        |   49 +++++
 src/views/toCarryOutLegislativeReforms/reform/index.vue      |  173 +++++++++++++-----
 src/store/getters.js                                         |    5 
 src/App.vue                                                  |    6 
 src/mixins/downLoadNotice.js                                 |   60 ++++++
 src/views/toCarryOutLegislativeReforms/summaryPage/index.vue |   53 +++--
 9 files changed, 349 insertions(+), 145 deletions(-)

diff --git a/.eslintrc.js b/.eslintrc.js
index d172433..a949ef5 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -4,13 +4,20 @@
     node: true
   },
   extends: [
-    'plugin:vue/recommended', // ���������������������vue.js������
-    'eslint:recommended' //������Eslint������������������������������������
+    // ������vuejs���������eslint��������� https://eslint.vuejs.org/user-guide/#usage
+    'plugin:vue/recommended',
+    // ������ ESLint ��������������� prettier ������������
+    'eslint:recommended'
   ],
   parserOptions: {
-    ecmaVersion: 13,
+    ecmaVersion: 10,
     sourceType: 'module'
   },
   plugins: ['vue'],
-  rules: {}
+  rules: {
+    'space-before-function-paren': 0,
+    'no-console': 'off',
+    'no-unused-vars': 'off',
+    'vue/attribute-hyphenation': 0 // ������������������
+  }
 }
diff --git a/src/App.vue b/src/App.vue
index 6520001..3336e60 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -6,8 +6,10 @@
 
 <script>
 // import { getMenus } from '@/router/dynamicRouter.js'
+import { mixins } from './mixins/downLoadNotice'
 export default {
-  name: 'App'
+  name: 'App',
+  mixins: [mixins]
   // mounted() {
   //   console.log('-------------')
   //   setTimeout(() => {
@@ -17,7 +19,7 @@
 }
 </script>
 <style >
-#app{
+#app {
   height: 100%;
 }
 </style>
diff --git a/src/mixins/downLoadNotice.js b/src/mixins/downLoadNotice.js
new file mode 100644
index 0000000..16801eb
--- /dev/null
+++ b/src/mixins/downLoadNotice.js
@@ -0,0 +1,60 @@
+import { mapState } from 'vuex'
+export const mixins = {
+  data: function () {
+    return {
+      notify: {} // ������������������������������������������
+    }
+  },
+  computed: {
+    ...mapState({
+      progressList: state => state.downLoadProgress.progressList
+    })
+  },
+  watch: {
+    // ������������������
+    progressList: {
+      handler(n) {
+        const data = JSON.parse(JSON.stringify(n))
+        console.log('Mixin', data)
+        data.forEach(item => {
+          const domList = [...document.getElementsByClassName(item.path)]
+          if (domList.find(i => i.className === item.path)) {
+            // ���������������������������������������������������������������������progress
+            if (item.progress) {
+              domList.find(i => i.className === item.path).innerHTML =
+                item.progress + '%'
+            }
+            if (item.progress === null) {
+              // ���������������������������������������������������������������������������������
+              this.$store.commit('downLoadProgress/DEL_PROGRESS', item.path)
+              this.$notify.error({
+                title: '������',
+                message: '���������������������'
+              })
+            }
+          } else {
+            // ������������������������������������������������������������������������������������notify���������������������������������������������������������path(������������path������������)���������������$notify(element ui������������������)������������
+            this.notify[item.path] = this.$notify.success({
+              // title: 'info',
+              dangerouslyUseHTMLString: true,
+              customClass: 'progress-notify',
+              message: `<p style="width: 100px;">������������<span class="${item.path}" style="float: right">${item.progress}%</span></p>`, // ������������������������������������������������path(���������������������������������)
+              duration: 0
+            })
+          }
+
+          if (item.progress == 100) {
+            // ������������������������100%������������������������������notify������������������������
+            this.notify[item.path].close()
+            // delete this.notify[item.path] ���������close()���������������������������������������������������������setTimeout���������������������������������
+            setTimeout(() => {
+              delete this.notify[item.path]
+            }, 1000)
+            this.$store.commit('downLoadProgress/DEL_PROGRESS', item.path) // ������caseInformation���state���progressList������������������
+          }
+        })
+      },
+      deep: true
+    }
+  }
+}
diff --git a/src/store/getters.js b/src/store/getters.js
index afdb60a..d90a40c 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -6,7 +6,8 @@
   token: state => state.user.token,
   avatar: state => state.user.avatar,
   name: state => state.user.name,
-  regionCode: state => state.regionCode
+  regionCode: state => state.regionCode,
+  progressList: state => state.downLoadProgress.progressList,
+  progressError: state => state.downLoadProgress.progressError
 }
 export default getters
-
diff --git a/src/store/index.js b/src/store/index.js
index e1ab594..abcce36 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -4,6 +4,7 @@
 import app from './modules/app'
 import settings from './modules/settings'
 import user from './modules/user'
+import downLoadProgress from './modules/downLoadProgress'
 
 Vue.use(Vuex)
 
@@ -12,6 +13,7 @@
     app,
     settings,
     user,
+    downLoadProgress,
     orgId: 0,
     accountId: 0,
     regionCode: 0,
@@ -27,7 +29,6 @@
     // alarmTableVisible: false
   },
   getters
-
 })
 
 export default store
diff --git a/src/store/modules/downLoadProgress.js b/src/store/modules/downLoadProgress.js
new file mode 100644
index 0000000..e69f1aa
--- /dev/null
+++ b/src/store/modules/downLoadProgress.js
@@ -0,0 +1,49 @@
+const state = {
+  // ������������������
+  progressList: [],
+  progressError: ''
+}
+const mutations = {
+  SET_PROGRESS: (state, progressObj) => {
+    // ������������������
+    console.log('Vuex', progressObj)
+    if (state.progressList.length) {
+      // ������������������������
+      if (state.progressList.find(item => item.path == progressObj.path)) {
+        // ������������path���������������������������������������������������������������������������������������
+        state.progressList.find(
+          item => item.path == progressObj.path
+        ).progress = progressObj.progress
+        // ���������������������������progress
+      }
+    } else {
+      // ������������������������������������������������������������������������������������������������
+      state.progressList.push(progressObj)
+    }
+  },
+  DEL_PROGRESS: (state, props) => {
+    state.progressList.splice(
+      state.progressList.findIndex(item => item.path == props),
+      1
+    ) // ������������������������������������
+  },
+  CHANGE_SETTING: (state, { key, value }) => {
+    // eslint-disable-next-line no-prototype-builtins
+    if (state.hasOwnProperty(key)) {
+      state[key] = value
+    }
+  }
+}
+
+const actions = {
+  changeSetting({ commit }, data) {
+    commit('CHANGE_SETTING', data)
+  }
+}
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions
+}
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index ce56294..d1db7b5 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -26,79 +26,86 @@
   login({ commit }, userInfo) {
     const { account, password } = userInfo
     return new Promise((resolve, reject) => {
-      login({ account: account.trim(), password: password }).then(response => {
-        // ���������������������������������token
-        axios.defaults.headers['token'] = response.data.token
-        // const { data } = response
-        console.log('���������������������������')
-        window.loginInfo = response.message
-        if (response.code === 0) {
-          commit('SET_TOKEN', response.data.token)
-          setToken(response.data.token)
-          // axios.interceptors.request.use(config => {
-          //   config.headers.token = response.data.token
-          // })
-          // console.log('������axios���token')
-        } else {
-          this.$store.state.loginInfo = response.message
-          // console.log(this.$store.state.loginInfo)
-          reject()
-        }
-        resolve(response)
-      }).catch(error => {
-        console.log('���������������������������')
-        reject(error)
-      })
+      login({ account: account.trim(), password: password })
+        .then(response => {
+          // ���������������������������������token
+          axios.defaults.headers['token'] = response.data.token
+          // const { data } = response
+          console.log('���������������������������')
+          window.loginInfo = response.message
+          if (response.code === 0) {
+            commit('SET_TOKEN', response.data.token)
+            setToken(response.data.token)
+            // axios.interceptors.request.use(config => {
+            //   config.headers.token = response.data.token
+            // })
+            // console.log('������axios���token')
+          } else {
+            this.$store.state.loginInfo = response.message
+            // console.log(this.$store.state.loginInfo)
+            reject()
+          }
+          resolve(response)
+        })
+        .catch(error => {
+          console.log('���������������������������')
+          reject(error)
+        })
     })
   },
 
   // get user info
   getInfo({ commit, state }) {
     return new Promise((resolve, reject) => {
-      getInfo(state.token).then(response => {
-        console.log(response, 'res')
-        // ���accountId������sotre
-        // console.log(66777)
-        // console.log(response)
-        this.state.accountId = response.data.userId
-        // ���orgId������sotre
-        this.state.orgId = response.data.organization.id
-        // ���regionCode������sotre
-        this.state.regionCode = response.data.organization.locationLevelCode
-        // monitorPointId������������sotre
-        this.state.monitorPointId = response.data.monitorPointIds
-        this.state.user.name = response.data.userName
-        this.state.user.menus = JSON.stringify(response.data.menus)
-        // ���menu������������store
-        // sessionStorage.setItem('menus', )
-        // this.state.menus = response.data.menus
-        if (!response) {
-          reject('Verification failed, please Login again.')
-        }
-        resolve(response)
-      }).catch(error => {
-        console.log('���������token������������')
-        // this.$router.push({ path: '/login' })
-        reject(error)
-      })
+      getInfo(state.token)
+        .then(response => {
+          console.log(response, 'res')
+          // ���accountId������sotre
+          // console.log(66777)
+          // console.log(response)
+          this.state.accountId = response.data.userId
+          // ���orgId������sotre
+          this.state.orgId = response.data.organization.id
+          // ���regionCode������sotre
+          this.state.regionCode = response.data.organization.locationLevelCode
+          // monitorPointId������������sotre
+          this.state.monitorPointId = response.data.monitorPointIds
+          this.state.user.name = response.data.userName
+          this.state.user.menus = []
+          this.state.user.menus = JSON.stringify(response.data.menus)
+          // ���menu������������store
+          // sessionStorage.setItem('menus', )
+          // this.state.menus = response.data.menus
+          if (!response) {
+            reject('Verification failed, please Login again.')
+          }
+          resolve(response)
+        })
+        .catch(error => {
+          console.log('���������token������������')
+          // this.$router.push({ path: '/login' })
+          reject(error)
+        })
     })
   },
 
   // user logout
   logout({ commit, state }) {
     return new Promise((resolve, reject) => {
-    //   console.log('������������������������������token')
-    //   console.log(state.token)
-      logout(state.token).then((res) => {
-        commit('SET_TOKEN', '')
-        removeToken()
-        resetRouter()
-        sessionStorage.clear()
-        resolve()
-      }).catch(error => {
-        console.log('������������������')
-        reject(error)
-      })
+      //   console.log('������������������������������token')
+      //   console.log(state.token)
+      logout(state.token)
+        .then(res => {
+          commit('SET_TOKEN', '')
+          removeToken()
+          resetRouter()
+          sessionStorage.clear()
+          resolve()
+        })
+        .catch(error => {
+          console.log('������������������')
+          reject(error)
+        })
     })
   },
 
@@ -118,4 +125,3 @@
   mutations,
   actions
 }
-
diff --git a/src/views/toCarryOutLegislativeReforms/reform/index.vue b/src/views/toCarryOutLegislativeReforms/reform/index.vue
index 4c5e0b6..cdeb5b5 100644
--- a/src/views/toCarryOutLegislativeReforms/reform/index.vue
+++ b/src/views/toCarryOutLegislativeReforms/reform/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="main" v-loading="loading">
+  <div v-loading="loading" class="main">
     <div>
       <searchBar v-if="searchType" :search-type="'reform'" @handleSearch="handleSearchBut" @handleAdd="handleOpenDialog(null, 'add')" />
       <newWorkOrder v-if="centerDialogVisible" ref="newWorkOrder" :parent-form-data="parentFormData" :title="title" :page-state="pageState" :visible.sync="centerDialogVisible" @handleSubmit="newHandleSubmit" />
@@ -8,8 +8,12 @@
         <div class="exportBox">
           <div>������������</div>
           <div>
-            <el-button type="primary" size="mini" @click="handleOpenDialog(null, 'add')">������</el-button>
-            <el-button :disabled="!(selectionRows.length>0)" type="info" size="mini" @click="exportData">������</el-button>
+            <el-button type="primary" size="mini" @click="handleOpenDialog(null, 'add')">
+              ������
+            </el-button>
+            <el-button :disabled="!(selectionRows.length>0)" type="info" size="mini" @click="isNowDonw">
+              ������
+            </el-button>
           </div>
         </div>
 
@@ -17,19 +21,20 @@
           <div>
             <div v-if="sealList.length>0">
               <div v-for="(item,index) in sealList" :key="index" :style="{'height':item.styleHeight}">
-                <div class="yingzhang" v-if="item.isInvalid===1">
-                  <div class="seal-red"> ��������� </div>
+                <div v-if="item.isInvalid===1" class="yingzhang">
+                  <div class="seal-red">
+                    ���������
+                  </div>
                 </div>
               </div>
             </div>
           </div>
           <div style="position: absolute;top:0;width: 100%;">
-            <el-table size="mini" :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange" :header-cell-style="{
-            color: '#101111',
-            fontSize: '16px'
-          }">
-              <el-table-column type="selection" width="40" align="center">
-              </el-table-column>
+            <el-table size="mini" :data="tableData" border style="width: 100%" :header-cell-style="{
+                color: '#101111',
+                fontSize: '16px'
+              }" @selection-change="handleSelectionChange">
+              <el-table-column type="selection" width="40" align="center" />
               <el-table-column type="index" label="������" width="60px" align="center" />
               <el-table-column align="center">
                 <template slot="header">
@@ -104,11 +109,10 @@
               </el-table-column>
               <el-table-column align="center" prop="createTime" min-width="100px" label="������">
                 <template slot-scope="scope">
-
                   <el-button type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'detail')">
                     ������
                   </el-button>
-                  <el-button type="text" v-if="scope.row.isCode==='1'" size="medium" @click="openEditDialog(scope.row)">
+                  <el-button v-if="scope.row.isCode==='1'" type="text" size="medium" @click="openEditDialog(scope.row)">
                     ������������
                   </el-button>
                   <el-button v-if="scope.row.state === 9" type="text" size="medium" @click="handleOpenDialog(scope.row, 'edit')">
@@ -123,11 +127,7 @@
                   <el-button v-if="scope.row.state === 30 && scope.row.isApprove === 1" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'approve')">
                     ������
                   </el-button>
-                  <el-button v-if="
-                  scope.row.state === 20 &&
-                  scope.row.changeType === 2 &&
-                  scope.row.applyState === 0
-                " type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'delay')">
+                  <el-button v-if="scope.row.state === 20 && scope.row.changeType === 2 &&scope.row.applyState === 0" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'delay')">
                     ������������
                   </el-button>
                 </template>
@@ -154,25 +154,43 @@
         <el-button type="primary" @click="handleInvalid">��� ���</el-button>
       </span>
     </el-dialog>
-    <el-dialog title="������" v-if="dialogEditVisible" :visible.sync="dialogEditVisible" width="800px" top='5vh' :before-close="handleClose" center>
+    <el-dialog v-if="dialogEditVisible" title="������" :visible.sync="dialogEditVisible" width="800px" top="5vh" :before-close="handleClose" center>
       <el-descriptions title="������������">
         <template slot="extra">
           <div>
-            {{ editEscalationUnitData.allocationNum}}
+            {{ editEscalationUnitData.allocationNum }}
           </div>
         </template>
-        <el-descriptions-item label="������������" label-class-name="itemSpan">{{ editEscalationUnitData.escalationTime }}</el-descriptions-item>
-        <el-descriptions-item label="������������" label-class-name="itemSpan">{{ updataUnitIdFormatter }}</el-descriptions-item>
-        <el-descriptions-item label="������������" label-class-name="itemSpan">{{ polluteTypeeDITFormatter }}</el-descriptions-item>
-        <el-descriptions-item label="������������" label-class-name="itemSpan">{{ dictObj.changeEnum[editEscalationUnitData.changeType] }}</el-descriptions-item>
-        <el-descriptions-item label="������������" label-class-name="itemSpan">{{ editEscalationUnitData.changeDay || 0}} ���</el-descriptions-item>
-        <el-descriptions-item label="������������" label-class-name="itemSpan">{{ updataEscalationUnitIdFormatter }}</el-descriptions-item>
-        <el-descriptions-item label="���������" label-class-name="itemSpan">{{ editEscalationUnitData.escalationName }}</el-descriptions-item>
-        <el-descriptions-item label="������������" label-class-name="itemSpan">{{ editEscalationUnitData.pollutePosition }}</el-descriptions-item>
+        <el-descriptions-item label="������������" label-class-name="itemSpan">
+          {{ editEscalationUnitData.escalationTime }}
+        </el-descriptions-item>
+        <el-descriptions-item label="������������" label-class-name="itemSpan">
+          {{ updataUnitIdFormatter }}
+        </el-descriptions-item>
+        <el-descriptions-item label="������������" label-class-name="itemSpan">
+          {{ polluteTypeeDITFormatter }}
+        </el-descriptions-item>
+        <el-descriptions-item label="������������" label-class-name="itemSpan">
+          {{ dictObj.changeEnum[editEscalationUnitData.changeType] }}
+        </el-descriptions-item>
+        <el-descriptions-item label="������������" label-class-name="itemSpan">
+          {{ editEscalationUnitData.changeDay || 0 }} ���
+        </el-descriptions-item>
+        <el-descriptions-item label="������������" label-class-name="itemSpan">
+          {{ updataEscalationUnitIdFormatter }}
+        </el-descriptions-item>
+        <el-descriptions-item label="���������" label-class-name="itemSpan">
+          {{ editEscalationUnitData.escalationName }}
+        </el-descriptions-item>
+        <el-descriptions-item label="������������" label-class-name="itemSpan">
+          {{ editEscalationUnitData.pollutePosition }}
+        </el-descriptions-item>
       </el-descriptions>
-      <el-divider></el-divider>
+      <el-divider />
       <div>
-        <p class="editTile">������������</p>
+        <p class="editTile">
+          ������������
+        </p>
         <el-form :inline="true" class="demo-form-inline">
           <el-form-item label="������������:">
             <el-select v-model="formInEdit.unitId" size="small" clearable placeholder="���������">
@@ -191,9 +209,15 @@
           <div class="block">
             <el-timeline>
               <el-timeline-item v-for="(activity, index) in operatingLog" :key="index" :color="'#0bbd87'" :timestamp="activity.createTime">
-                <div v-if="activity.content"> ���������: {{activity.userName}}</div>
-                <div v-if="activity.content"> ������������: {{activity.content}}</div>
-                <div v-if="activity.polluteType"> ������������: {{activity.polluteType}}</div>
+                <div v-if="activity.content">
+                  ���������: {{ activity.userName }}
+                </div>
+                <div v-if="activity.content">
+                  ������������: {{ activity.content }}
+                </div>
+                <div v-if="activity.polluteType">
+                  ������������: {{ activity.polluteType }}
+                </div>
               </el-timeline-item>
             </el-timeline>
           </div>
@@ -209,6 +233,7 @@
 </template>
 
 <script>
+// import { mixins } from './downLoadNotice'
 import axios from 'axios'
 import _ from 'lodash'
 import qs from 'qs'
@@ -221,6 +246,7 @@
     newWorkOrder,
     workOrderInformation
   },
+  // mixins: [mixins],
   data() {
     return {
       loading: false,
@@ -302,15 +328,38 @@
       console.log(rows)
       this.selectionRows = rows
     },
+    isNowDonw() {
+      this.$confirm('������������������������������?', '������', {
+        confirmButtonText: '������������',
+        cancelButtonText: '������������',
+        type: 'warning'
+      })
+        .then(() => {
+          this.loading = true
+          this.exportData()
+        })
+        .catch(() => {
+          this.loading = false
+          this.exportData()
+        })
+    },
     exportData() {
+      // this.dowOrgFile('���������������.xlsx')
+      let that = this
       const CancelToken = axios.CancelToken
       let cancel
-      let timer = setTimeout(() => {
-        cancel()
-        this.loading = false
-        this.$message.error('���������������������������������������������')
-      }, 300000)
-      this.loading = true
+      let timer
+      const totalSize = this.selectionRows.length * 1024 * 1024
+      const uniSign = new Date().getTime() + '' // ���������������������������������������������������������������������������������������������
+      if (this.loading) {
+        timer = setTimeout(() => {
+          cancel()
+          this.loading = false
+          this.$message.error('���������������������������������������������')
+        }, 300000)
+      }
+
+      // this.loading = true
       this.$request({
         url: '/allocation/listExcel',
         method: 'get',
@@ -321,6 +370,19 @@
         cancelToken: new CancelToken(function executor(c) {
           cancel = c
         }),
+        onDownloadProgress(progress) {
+          const loaded = progress.loaded
+          // progress������������loaded������������������������������total������������������������������������������
+          let downProgress = Math.round((loaded / totalSize) * 100)
+          console.log('downProgress', downProgress)
+          // ������������������������������������������������������������vuex������������
+          if (!that.loading) {
+            that.$store.commit('downLoadProgress/SET_PROGRESS', {
+              path: uniSign,
+              progress: downProgress
+            })
+          }
+        },
         paramsSerializer: params => {
           return qs.stringify(params, {
             indices: false
@@ -333,6 +395,12 @@
           if (res.code === -1) {
             this.$message.error(res.message)
           } else {
+            if (!that.loading) {
+              that.$store.commit('downLoadProgress/SET_PROGRESS', {
+                path: uniSign,
+                progress: 100
+              })
+            }
             this.getOutExcel('���������������.xlsx', res)
           }
         })
@@ -342,23 +410,24 @@
         })
     },
     getOutExcel(fileName, res) {
-      let blob = new Blob([res], { type: 'application/x-xls' })
+      const blob = new Blob([res], { type: 'application/x-xls' })
       if (window.navigator.msSaveOrOpenBlob) {
-        //������ IE & EDGE
+        // ������ IE & EDGE
         this.loading = false
         navigator.msSaveBlob(blob, fileName)
       } else {
-        var link = document.createElement('a')
+        const link = document.createElement('a')
         // ������������������������URL������
         const url = window.URL || window.webkitURL || window.moxURL
         // ������������������
         link.href = url.createObjectURL(blob)
-        //������������������
+        // ������������������
         link.download = fileName
-        //������������������
+        // ������������������
         link.click()
-        //������������������������
+        // ������������������������
         url.revokeObjectURL(link.href)
+        this.$message.success('���������������')
         this.loading = false
       }
     },
@@ -376,7 +445,7 @@
           this.operatingLog = res.data
         })
         .catch(err => {
-          this.$message.error(res.message)
+          this.$message.error(err.message)
           console.log('������Region������')
           console.log(err)
         })
@@ -420,7 +489,7 @@
           }
         })
         .catch(err => {
-          this.$message.error(res.message)
+          this.$message.error(err.message)
           console.log('������Region������')
           console.log(err)
         })
@@ -548,7 +617,7 @@
       })
     },
     handleSearchBut(obj) {
-      let pageSize = this.pagination.pageSize
+      const pageSize = this.pagination.pageSize
       this.pagination = {
         currentPage: 1,
         // ������������������������������������������(���������������������������)
@@ -582,10 +651,10 @@
           })
           this.pagination.totalCount = res.data.page.totalNum
           this.$nextTick(() => {
-            var rows = this.$el.querySelectorAll('table tr')
-            for (var i = 0; i < rows.length; i++) {
-              var row = rows[i]
-              var height = row.getBoundingClientRect().height
+            const rows = this.$el.querySelectorAll('table tr')
+            for (let i = 0; i < rows.length; i++) {
+              const row = rows[i]
+              const height = row.getBoundingClientRect().height
               this.sealList[i]['styleHeight'] = height + 'px'
             }
             this.$forceUpdate()
diff --git a/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue b/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
index d53fbe1..bc4adb2 100644
--- a/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
+++ b/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
@@ -2,11 +2,21 @@
   <div class="main">
     <div class="timeSelect">
       <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-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('timeValue')" />
     </div>
@@ -31,20 +41,20 @@
     <div class="overviewAndDetails">
       <el-tabs v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="������" name="first">
+          <div class="tit">
+            <span>
+              ���������������������������
+            </span>
+            <el-button type="primary" plain size="small" style="float: right;" @click="ecxport">
+              ������
+            </el-button>
+          </div>
           <div>
-            <div class="tit">
-              <span>
-                ���������������������������
-              </span>
-              <el-button type="primary" plain size="small" style="float: right;" @click="ecxport">
-                ������
-              </el-button>
-            </div>
             <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 :data="tableData" class="topTable" border style="width: 100%" :header-cell-style="{
+                    background: '#99D4FF', color: '#101111', fontSize: '16px'
+                  }">
                   <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="���������" />
@@ -55,8 +65,8 @@
                   <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">
+                <vueSeamless v-if="tableData.length>5" ref="scroll3" :data="tableData" :pause="true" class="seamless-warp" style="width: 100%;" :class-option="classOption">
+                  <el-table v-if="tableData.length>0" :data="tableData" 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="���������" />
@@ -68,7 +78,7 @@
                     <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 v-else :data="tableData" class="bottomTable" 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="���������" />
@@ -81,7 +91,6 @@
                 </el-table>
               </div>
             </div>
-
           </div>
         </el-tab-pane>
         <el-tab-pane label="������" name="second">
@@ -414,10 +423,10 @@
     display: flex;
     width: 100%;
   }
-  .top /deep/.el-table__body-wrapper {
+  .topTable /deep/.el-table__body-wrapper {
     display: none;
   }
-  .bottom /deep/.el-table__header-wrapper {
+  .bottomTable /deep/.el-table__header-wrapper {
     display: none;
     width: 100%;
   }

--
Gitblit v1.8.0