From 471e5c9d958ab074fef7048ec918f74c70d06d2f Mon Sep 17 00:00:00 2001 From: jiangyy Date: Tue, 2 Nov 2021 14:02:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/base/community/buildTable.vue | 137 ++++++++++++++++- .../modules/base/community/communityTable.vue | 85 ++++------- .../modules/base/community/roomTable.vue | 140 ++++++++++++++++-- 3 files changed, 290 insertions(+), 72 deletions(-) diff --git a/epmet-oper-web/src/views/modules/base/community/buildTable.vue b/epmet-oper-web/src/views/modules/base/community/buildTable.vue index 7f43d6d..9557b44 100644 --- a/epmet-oper-web/src/views/modules/base/community/buildTable.vue +++ b/epmet-oper-web/src/views/modules/base/community/buildTable.vue @@ -31,18 +31,31 @@ @click="handleSearch">查询
- 导出 - 新增楼宇 - 下载楼宇模板 - 导入楼宇数据 + + 导入小区数据 +
@@ -274,15 +287,123 @@ export default { } }, - handleExport () { + //导出表格 + async handleExport () { + let title = this.agencyObj.label + title = title + '—楼栋列表' + + const url = "/gov/org/building/exportbuildinginfo" + let params = { + ownerName: this.ownerName, + ownerPhone: this.ownerPhone, + neighborHoodId: this.agencyObj.id + } + + app.ajax.exportFilePost( + url, + params, + (data, rspMsg) => { + + this.download(data, title + '.xls') + }, + (rspMsg, data) => { + this.$message.error(rspMsg); + } + ); }, + // 下载文件 + download (data, fileName) { + if (!data) { + return + } + + var csvData = new Blob([data]) + + if (window.navigator && window.navigator.msSaveOrOpenBlob) { + window.navigator.msSaveOrOpenBlob(csvData, fileName); + } + // for Non-IE (chrome, firefox etc.) + else { + var a = document.createElement('a'); + document.body.appendChild(a); + a.style = 'display: none'; + var url = window.URL.createObjectURL(csvData); + a.href = url; + a.download = fileName; + a.click(); + a.remove(); + window.URL.revokeObjectURL(url); + } + + }, handleExportModule () { + let title = '' + title = '楼栋模板' + + const url = "/gov/org/building/exporttemplate" + let params = {} + + app.ajax.exportFilePost( + url, + params, + (data, rspMsg) => { + + this.download(data, title + '.xls') + }, + (rspMsg, data) => { + this.$message.error(rspMsg); + } + ); + }, + + // 上传文件之前的钩子 + beforeUpload (file) { + this.files = file; + const isText = file.type === 'application/vnd.ms-excel' + const isTextComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' + + if (!isText && !isTextComputer) { + this.$message.error('请选择正确格式的文件') + return false + } else { + this.fileName = file.name; + return true + } + + }, + // 上传文件个数超过定义的数量 + handleExceed (files, fileList) { + this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传`) }, - handleInport () { + + async uploadFile () { + this.loading = true + + if (this.fileName == "") { + this.$message.warning('请选择要上传的文件!') + return false + } + + //清空上传列表 + this.$refs['upload'].clearFiles() + + var url = '/gov/org/building/import' + let fileFormData = new FormData(); + fileFormData.append('file', this.files);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 + + const { data, code, msg } = await requestPost(url, fileFormData) + if (code === 0) { + + this.$emit('refreshTree') + this.loadTable() + } else { + this.$message.error(msg) + } + }, diff --git a/epmet-oper-web/src/views/modules/base/community/communityTable.vue b/epmet-oper-web/src/views/modules/base/community/communityTable.vue index b42c885..3431bfa 100644 --- a/epmet-oper-web/src/views/modules/base/community/communityTable.vue +++ b/epmet-oper-web/src/views/modules/base/community/communityTable.vue @@ -31,13 +31,16 @@ @click="handleSearch">查询
- 导出 - 新增小区 - 下载小区模板 @@ -45,19 +48,16 @@ :multiple='false' :show-file-list='false' :before-upload="beforeUpload" - action='' + action="" + accept=".xls,.xlsx" :limit="1" :on-exceed="handleExceed" :http-request="uploadFile"> 导入小区数据 + size="small" + type="danger">导入小区数据 - +
@@ -123,7 +123,7 @@ :close-on-click-modal="false" :close-on-press-escape="false" :title="formTitle" - width="800px" + width="900px" top="5vh" @closed="diaClose"> { - this.$nextTick(() => { + const { data, code, msg } = await requestPost(url, fileFormData) + if (code === 0) { - this.loading = false - this.$message.success(rspMsg) - this.loadTable() - }) - }, - (rspMsg, data) => { - this.loading = false - this.$message.error('

' + rspMsg + '

'); - } - ) + this.$emit('refreshTree') + this.loadTable() + } else { + this.$message.error(msg) + } }, - handleSizeChange (val) { console.log(`每页 ${val} 条`) }, diff --git a/epmet-oper-web/src/views/modules/base/community/roomTable.vue b/epmet-oper-web/src/views/modules/base/community/roomTable.vue index 7f2d073..ef3dbbc 100644 --- a/epmet-oper-web/src/views/modules/base/community/roomTable.vue +++ b/epmet-oper-web/src/views/modules/base/community/roomTable.vue @@ -31,18 +31,31 @@ @click="handleSearch">查询
- 导出 - 新增房屋 - 下载房屋模板 - 导入房屋数据 + + 导入小区数据 +
@@ -125,7 +138,7 @@ :close-on-click-modal="false" :close-on-press-escape="false" :title="formTitle" - width="800px" + width="900px" @closed="diaClose"> { + + this.download(data, title + '.xls') + }, + (rspMsg, data) => { + this.$message.error(rspMsg); + } + ); }, + // 下载文件 + download (data, fileName) { + if (!data) { + return + } - handleExportModule () { + var csvData = new Blob([data]) + + if (window.navigator && window.navigator.msSaveOrOpenBlob) { + window.navigator.msSaveOrOpenBlob(csvData, fileName); + } + // for Non-IE (chrome, firefox etc.) + else { + var a = document.createElement('a'); + document.body.appendChild(a); + a.style = 'display: none'; + var url = window.URL.createObjectURL(csvData); + a.href = url; + a.download = fileName; + a.click(); + a.remove(); + window.URL.revokeObjectURL(url); + } }, - handleInport () { + handleExportModule () { + let title = '' + title = '房屋模板' + + const url = "/gov/org/house/exporttemplate" + let params = {} + + app.ajax.exportFilePost( + url, + params, + (data, rspMsg) => { + + this.download(data, title + '.xls') + }, + (rspMsg, data) => { + this.$message.error(rspMsg); + } + ); }, + // 上传文件之前的钩子 + beforeUpload (file) { + this.files = file; + + const isText = file.type === 'application/vnd.ms-excel' + const isTextComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' + + if (!isText && !isTextComputer) { + this.$message.error('请选择正确格式的文件') + return false + } else { + this.fileName = file.name; + return true + } + + }, + // 上传文件个数超过定义的数量 + handleExceed (files, fileList) { + this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传`) + }, + + async uploadFile () { + this.loading = true + + if (this.fileName == "") { + this.$message.warning('请选择要上传的文件!') + return false + } + + //清空上传列表 + this.$refs['upload'].clearFiles() + + var url = '/gov/org/house/import' + let fileFormData = new FormData(); + fileFormData.append('file', this.files);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名 + + const { data, code, msg } = await requestPost(url, fileFormData) + if (code === 0) { + + this.$emit('refreshTree') + this.loadTable() + } else { + this.$message.error(msg) + } + + + }, handleSizeChange (val) { console.log(`每页 ${val} 条`)