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