李志伟 пре 3 година
родитељ
комит
7c0505cbed
4 измењених фајлова са 24 додато и 4 уклоњено
  1. 1
    2
      src/api/register.js
  2. 8
    0
      src/utils/download.js
  3. 8
    1
      src/utils/request.js
  4. 7
    1
      src/views/register/list.vue

+ 1
- 2
src/api/register.js Прегледај датотеку

@@ -24,8 +24,7 @@ export const getRegisterDetail = (id) => request({
24 24
 * @returns
25 25
 */
26 26
 export const excelRegister = (params) => request({
27
-  url: '/taRegister',
28
-  method: 'post',
27
+  url: '/admin/register/export',
29 28
   params,
30 29
   responseType: 'blob'
31 30
 })

+ 8
- 0
src/utils/download.js Прегледај датотеку

@@ -0,0 +1,8 @@
1
+export function downloadBlob(blob, fileName) {
2
+  const url = window.URL.createObjectURL(blob)
3
+  const link = document.createElement('a')
4
+  link.href = url
5
+  link.setAttribute('download', fileName)
6
+  link.click()
7
+  window.URL.revokeObjectURL(url)
8
+}

+ 8
- 1
src/utils/request.js Прегледај датотеку

@@ -2,6 +2,7 @@ import axios from 'axios'
2 2
 import { Message } from 'element-ui'
3 3
 import store from '@/store'
4 4
 import { getToken, getUserId } from '@/utils/auth'
5
+import { downloadBlob } from './download'
5 6
 
6 7
 // create an axios instance
7 8
 const service = axios.create({
@@ -46,7 +47,13 @@ service.interceptors.response.use(
46 47
   response => {
47 48
     const res = response.data
48 49
     // if the custom code is not 20000, it is judged as an error.
49
-    if (res.code !== 1000) {
50
+    const contextType = response.headers['content-type']
51
+    if (contextType.indexOf('application/vnd.ms-excel') > -1) {
52
+      const data = new Blob([res])
53
+      const content = response.headers['content-disposition']
54
+      const fileName = content.replace('attachment;filename=', '')
55
+      downloadBlob(data, decodeURIComponent(fileName))
56
+    } else if (res.code !== 1000) {
50 57
       Message({
51 58
         message: res.message || 'Error',
52 59
         type: 'error',

+ 7
- 1
src/views/register/list.vue Прегледај датотеку

@@ -211,7 +211,13 @@ export default {
211 211
       this.onSearch()
212 212
     },
213 213
     excelOut() {
214
-      excelRegister({ startDate: this.startDate, endDate: this.endDate })
214
+      excelRegister({
215
+        personType: this.personType,
216
+        name: this.name,
217
+        phone: this.phone,
218
+        area: this.area,
219
+        startDate: this.startDate,
220
+        endDate: this.endDate })
215 221
     }
216 222
   }
217 223
 }