张延森 4 yıl önce
ebeveyn
işleme
31ad6e9832

+ 7
- 0
src/api/activity.js Dosyayı Görüntüle

@@ -32,6 +32,13 @@ export function saveActivity(data) {
32 32
   }))
33 33
 }
34 34
 
35
+export function deleteActivity(id) {
36
+  return pureResponseData(request({
37
+    url: `/api/admin/activity/${id}`,
38
+    method: 'delete'
39
+  }))
40
+}
41
+
35 42
 export function getEnrollList(params) {
36 43
   return pureResponseData(request({
37 44
     url: `/api/admin/activityEnroll`,

+ 9
- 0
src/api/customer.js Dosyayı Görüntüle

@@ -8,3 +8,12 @@ export function getCustomerList(params) {
8 8
     params
9 9
   }))
10 10
 }
11
+
12
+export function exportCustomerList(params) {
13
+  return request({
14
+    url: `/api/admin/person/export`,
15
+    method: 'get',
16
+    responseType: 'blob',
17
+    params
18
+  })
19
+}

+ 7
- 0
src/api/news.js Dosyayı Görüntüle

@@ -24,6 +24,13 @@ export function saveNews(data) {
24 24
   }))
25 25
 }
26 26
 
27
+export function deleteNews(id) {
28
+  return pureResponseData(request({
29
+    url: `/api/admin/news/${id}`,
30
+    method: 'delete'
31
+  }))
32
+}
33
+
27 34
 export function getNewsList(params) {
28 35
   return pureResponseData(request({
29 36
     url: `/api/admin/news`,

+ 0
- 1
src/utils/request.js Dosyayı Görüntüle

@@ -48,7 +48,6 @@ service.interceptors.response.use(
48 48
       const url = window.URL.createObjectURL(new Blob([response.data]))
49 49
       const download = document.createElement('a')
50 50
       download.setAttribute('href', url)
51
-      debugger
52 51
       download.setAttribute('download', unescape(decodeURIComponent(fileName).replace(/\\/g, '%')))
53 52
       download.click()
54 53
       return

+ 18
- 5
src/views/activity/List.vue Dosyayı Görüntüle

@@ -7,7 +7,7 @@
7 7
       </el-tooltip>
8 8
     </div>
9 9
     <el-table
10
-      v-loading="listLoading"
10
+      v-loading="loading.list"
11 11
       :data="list"
12 12
       element-loading-text="Loading"
13 13
       border
@@ -33,6 +33,7 @@
33 33
       <el-table-column label="操作" align="center" width="200">
34 34
         <template slot-scope="scope">
35 35
           <el-button size="mini" type="primary" plain @click="handleEdit(scope.row)">编辑</el-button>
36
+          <el-button size="mini" type="danger" plain @click="handleDelete(scope.row)">删除</el-button>
36 37
         </template>
37 38
       </el-table-column>
38 39
     </el-table>
@@ -46,7 +47,7 @@
46 47
 </template>
47 48
 
48 49
 <script>
49
-import { getActivityList } from '@/api/activity'
50
+import { getActivityList, deleteActivity } from '@/api/activity'
50 51
 
51 52
 export default {
52 53
   components: {
@@ -91,7 +92,9 @@ export default {
91 92
   data() {
92 93
     return {
93 94
       list: null,
94
-      listLoading: true,
95
+      loading: {
96
+        list: false
97
+      },
95 98
       detailRouter: null,
96 99
       page: {
97 100
         total: 0,
@@ -110,7 +113,7 @@ export default {
110 113
   },
111 114
   methods: {
112 115
     fetchData() {
113
-      this.listLoading = true
116
+      this.loading.list = true
114 117
       getActivityList({
115 118
         ...this.filters,
116 119
         typeId: this.typeId,
@@ -119,7 +122,7 @@ export default {
119 122
       }).then(res => {
120 123
         this.list = res.records
121 124
         this.page.total = res.total
122
-        this.listLoading = false
125
+        this.loading.list = false
123 126
       })
124 127
     },
125 128
 
@@ -138,6 +141,16 @@ export default {
138 141
       })
139 142
     },
140 143
 
144
+    handleDelete(row) {
145
+      this.$confirm('确认删除当前记录?', { type: 'warning' }).then(() => {
146
+        this.loading.list = true
147
+        deleteActivity(row.activityId).then(() => {
148
+          this.list = this.list.filter(x => x.activityId !== row.activityId)
149
+          this.loading.list = false
150
+        })
151
+      })
152
+    },
153
+
141 154
     handlePageChange({ current, size }) {
142 155
       this.page.current = current
143 156
       this.page.size = size

+ 15
- 7
src/views/customer/index.vue Dosyayı Görüntüle

@@ -3,11 +3,11 @@
3 3
     <div class="customer-header">
4 4
       <FilterForm @search="handleSearch" @reset="handleSearch" />
5 5
       <el-tooltip content="导出" placement="top">
6
-        <el-button type="primary" icon="el-icon-position" @click="handleExport" />
6
+        <el-button type="primary" :loading="loading.export" @click="handleExport">导出</el-button>
7 7
       </el-tooltip>
8 8
     </div>
9 9
     <el-table
10
-      v-loading="listLoading"
10
+      v-loading="loading.list"
11 11
       :data="list"
12 12
       element-loading-text="Loading"
13 13
       border
@@ -51,7 +51,7 @@
51 51
 </template>
52 52
 
53 53
 <script>
54
-import { getCustomerList } from '@/api/customer'
54
+import { getCustomerList, exportCustomerList } from '@/api/customer'
55 55
 
56 56
 export default {
57 57
   components: {
@@ -89,7 +89,10 @@ export default {
89 89
   data() {
90 90
     return {
91 91
       list: null,
92
-      listLoading: true,
92
+      loading: {
93
+        list: false,
94
+        export: false
95
+      },
93 96
       page: {
94 97
         total: 0,
95 98
         size: 10,
@@ -106,7 +109,7 @@ export default {
106 109
   },
107 110
   methods: {
108 111
     fetchData() {
109
-      this.listLoading = true
112
+      this.loading.list = true
110 113
       getCustomerList({
111 114
         ...this.filters,
112 115
         pageNum: this.page.current,
@@ -114,11 +117,16 @@ export default {
114 117
       }).then(res => {
115 118
         this.list = res.records
116 119
         this.page.total = res.total
117
-        this.listLoading = false
120
+        this.loading.list = false
118 121
       })
119 122
     },
120 123
 
121
-    handleExport() {},
124
+    handleExport() {
125
+      this.loading.export = true
126
+      exportCustomerList(this.filters).then(() => {
127
+        this.loading.export = false
128
+      })
129
+    },
122 130
 
123 131
     handlePageChange({ current, size }) {
124 132
       this.page.current = current

+ 18
- 5
src/views/news/List.vue Dosyayı Görüntüle

@@ -7,7 +7,7 @@
7 7
       </el-tooltip>
8 8
     </div>
9 9
     <el-table
10
-      v-loading="listLoading"
10
+      v-loading="loading.list"
11 11
       :data="list"
12 12
       element-loading-text="Loading"
13 13
       border
@@ -42,6 +42,7 @@
42 42
       <el-table-column label="操作" align="center" width="200">
43 43
         <template slot-scope="scope">
44 44
           <el-button size="mini" type="primary" plain @click="handleEdit(scope.row)">编辑</el-button>
45
+          <el-button size="mini" type="danger" plain @click="handleDelete(scope.row)">删除</el-button>
45 46
         </template>
46 47
       </el-table-column>
47 48
     </el-table>
@@ -55,7 +56,7 @@
55 56
 </template>
56 57
 
57 58
 <script>
58
-import { getNewsList } from '@/api/news'
59
+import { getNewsList, deleteNews } from '@/api/news'
59 60
 
60 61
 export default {
61 62
   components: {
@@ -96,7 +97,9 @@ export default {
96 97
   data() {
97 98
     return {
98 99
       list: null,
99
-      listLoading: true,
100
+      loading: {
101
+        list: false
102
+      },
100 103
       detailRouter: null,
101 104
       page: {
102 105
         total: 0,
@@ -115,7 +118,7 @@ export default {
115 118
   },
116 119
   methods: {
117 120
     fetchData() {
118
-      this.listLoading = true
121
+      this.loading.list = true
119 122
       getNewsList({
120 123
         ...this.filters,
121 124
         typeId: this.typeId,
@@ -124,7 +127,7 @@ export default {
124 127
       }).then(res => {
125 128
         this.list = res.records
126 129
         this.page.total = res.total
127
-        this.listLoading = false
130
+        this.loading.list = false
128 131
       })
129 132
     },
130 133
 
@@ -149,6 +152,16 @@ export default {
149 152
       })
150 153
     },
151 154
 
155
+    handleDelete(row) {
156
+      this.$confirm('确认删除当前记录?', { type: 'warning' }).then(() => {
157
+        this.loading.list = true
158
+        deleteNews(row.newsId).then(() => {
159
+          this.list = this.list.filter(x => x.newsId !== row.newsId)
160
+          this.loading.list = false
161
+        })
162
+      })
163
+    },
164
+
152 165
     handleSearch(searchParams) {
153 166
       this.filters = {
154 167
         ...this.filters,

+ 7
- 3
src/views/recommender/index.vue Dosyayı Görüntüle

@@ -3,7 +3,7 @@
3 3
     <div class="recommender-header">
4 4
       <FilterForm @search="handleSearch" @reset="handleSearch" />
5 5
       <el-tooltip content="导出" placement="top">
6
-        <el-button type="primary" icon="el-icon-position" @click="handleExport" />
6
+        <el-button type="primary" :loading="loading.export" @click="handleExport">导出</el-button>
7 7
       </el-tooltip>
8 8
     </div>
9 9
     <el-table
@@ -152,7 +152,8 @@ export default {
152 152
       list: null,
153 153
       loading: {
154 154
         list: false,
155
-        dialog: false
155
+        dialog: false,
156
+        export: false
156 157
       },
157 158
       dialogVisible: false,
158 159
       current: {},
@@ -185,7 +186,10 @@ export default {
185 186
     },
186 187
 
187 188
     handleExport() {
188
-      exportRecommenderList(this.filters)
189
+      this.loading.export = true
190
+      exportRecommenderList(this.filters).then(() => {
191
+        this.loading.export = false
192
+      })
189 193
     },
190 194
 
191 195
     handlePageChange({ current, size }) {