Commit 04e55fcfe10fc43f97ad53414df502369dbdba57
1 parent
a1b48a4445
Exists in
master
auto commit the code by alias command
Showing
5 changed files
with
419 additions
and
460 deletions
Show diff stats
mock/prod/list.js
1 | import Mock from 'mockjs' | File was deleted | |
2 | // import logoPath from "~@/assets/img/yp_logo.jpeg" | ||
3 | |||
4 | const List = [] | ||
5 | const count = 20 | ||
6 | |||
7 | const baseContent = '<p>I am testing data, I am testing data.</p><p></p>' | ||
8 | // const image_uri = logoPath | ||
9 | const image_uri = 'https://wpimg.wallstcn.com/360e4842-4db5-42d0-b078-f9a84a825546.gif' | ||
10 | |||
11 | for (let i = 0; i < count; i++) { | ||
12 | List.push(Mock.mock({ | ||
13 | pid: '@increment', | ||
14 | pname: '@title(5,10)', | ||
15 | timestamp: +Mock.Random.date('T'), | ||
16 | shoper: '@first', //所属工厂 | ||
17 | salescount: '@first', //购买次数 | ||
18 | importance: '@integer(1, 3)', //排序权重 | ||
19 | prod_info_weight: '@integer(1, 3)', //重量 | ||
20 | prod_info_leg_long: '@integer(1, 3)', //腿长 | ||
21 | prod_info_glass_width: '@integer(1, 3)', //镜宽 | ||
22 | prod_info_glass_height: '@integer(1, 3)', //镜高 | ||
23 | prod_info_frame_width: '@integer(1, 3)', //框宽 | ||
24 | prod_info_frame_height: '@integer(1, 3)', //框高 | ||
25 | prod_info_norse_width: '@integer(1, 3)', //鼻宽 | ||
26 | prod_info_window_pic: [], //鼻宽 | ||
27 | image_uri: image_uri | ||
28 | })) | ||
29 | } | ||
30 | |||
31 | export default [{ | ||
32 | url: '/yp/prod/list', | ||
33 | type: 'post', | ||
34 | response: config => { | ||
35 | const { | ||
36 | importance, | ||
37 | type, | ||
38 | title, | ||
39 | page = 1, | ||
40 | limit = 20, | ||
41 | sort | ||
42 | } = config.query | ||
43 | |||
44 | // let mockList = List.filter(item => { | ||
45 | // if (importance && item.importance !== +importance) return false | ||
46 | // if (type && item.type !== type) return false | ||
47 | // if (title && item.title.indexOf(title) < 0) return false | ||
48 | // return true | ||
49 | // }) | ||
50 | |||
51 | if (sort === '-id') { | ||
52 | mockList = mockList.reverse() | ||
53 | } | ||
54 | |||
55 | const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1)) | ||
56 | |||
57 | return { | ||
58 | code: 20000, | ||
59 | data: { | ||
60 | total: mockList.length, | ||
61 | items: pageList | ||
62 | } | ||
63 | } | ||
64 | } | ||
65 | }, | ||
66 | |||
67 | // { | ||
68 | // url: '/yp/prod/detail', | ||
69 | // type: 'get', | ||
70 | // response: config => { | ||
71 | // const { | ||
72 | // id | ||
73 | // } = config.query | ||
74 | // for (const article of List) { | ||
75 | // if (article.id === +id) { | ||
76 | // return { | ||
77 | // code: 20000, | ||
78 | // data: article | ||
79 | // } | ||
80 | // } | ||
81 | // } | ||
82 | // } | ||
83 | // }, | ||
84 | |||
85 | // { | ||
86 | // url: '/yp/article/pv', | ||
87 | // type: 'get', | ||
88 | // response: _ => { | ||
89 | // return { | ||
90 | // code: 20000, | ||
91 | // data: { | ||
92 | // pvData: [{ | ||
93 | // key: 'PC', | ||
94 | // pv: 1024 | ||
95 | // }, | ||
96 | // { | ||
97 | // key: 'mobile', | ||
98 | // pv: 1024 | ||
99 | // }, | ||
100 | // { | ||
101 | // key: 'ios', | ||
102 | // pv: 1024 | ||
103 | // }, | ||
104 | // { | ||
105 | // key: 'android', | ||
106 | // pv: 1024 | ||
107 | // } | ||
108 | // ] | ||
109 | // } | ||
110 | // } | ||
111 | // } | ||
112 | // }, | ||
113 | |||
114 | // { | ||
115 | // url: '/yp/article/create', | ||
116 | // type: 'post', | ||
117 | // response: _ => { | ||
118 | // return { | ||
119 | // code: 20000, | ||
120 | // data: 'success' | ||
121 | // } | ||
122 | // } | ||
123 | // }, | ||
124 | |||
125 | // { | ||
126 | // url: '/yp/article/update', | ||
127 | // type: 'post', | ||
128 | // response: _ => { | ||
129 | // return { | ||
130 | // code: 20000, | ||
131 | // data: 'success' | ||
132 | // } | ||
133 | // } | ||
134 | // } | ||
135 | ] | ||
136 | 1 | import Mock from 'mockjs' |
mock/role/routes.js
1 | // Just a mock data | 1 | // Just a mock data |
2 | 2 | ||
3 | export const constantRoutes = [ | 3 | export const constantRoutes = [{ |
4 | { | ||
5 | path: '/redirect', | 4 | path: '/redirect', |
6 | component: 'layout/Layout', | 5 | component: 'layout/Layout', |
7 | hidden: true, | 6 | hidden: true, |
8 | children: [ | 7 | children: [{ |
9 | { | 8 | path: '/redirect/:path*', |
10 | path: '/redirect/:path*', | 9 | component: 'views/redirect/index' |
11 | component: 'views/redirect/index' | 10 | }] |
12 | } | ||
13 | ] | ||
14 | }, | 11 | }, |
15 | { | 12 | { |
16 | path: '/login', | 13 | path: '/login', |
17 | component: 'views/login/index', | 14 | component: 'views/login/index', |
18 | hidden: true | 15 | hidden: true |
19 | }, | 16 | }, |
20 | { | 17 | { |
21 | path: '/auth-redirect', | 18 | path: '/auth-redirect', |
22 | component: 'views/login/auth-redirect', | 19 | component: 'views/login/auth-redirect', |
23 | hidden: true | 20 | hidden: true |
24 | }, | 21 | }, |
25 | { | 22 | { |
26 | path: '/401', | 23 | path: '/401', |
27 | component: 'views/error-page/401', | 24 | component: 'views/error-page/401', |
28 | hidden: true | 25 | hidden: true |
29 | }, | 26 | }, |
30 | { | 27 | { |
31 | path: '/403', | 28 | path: '/403', |
32 | component: 'views/error-page/403', | 29 | component: 'views/error-page/403', |
33 | hidden: true | 30 | hidden: true |
34 | }, | 31 | }, |
35 | { | 32 | { |
36 | path: '/404', | 33 | path: '/404', |
37 | component: 'views/error-page/404', | 34 | component: 'views/error-page/404', |
38 | hidden: true | 35 | hidden: true |
39 | }, | 36 | }, |
40 | { | 37 | { |
41 | path: '/500', | 38 | path: '/500', |
42 | component: 'views/error-page/500', | 39 | component: 'views/error-page/500', |
43 | hidden: true | 40 | hidden: true |
44 | }, | 41 | }, |
45 | { | 42 | { |
46 | path: '', | 43 | path: '', |
47 | component: 'layout/Layout', | 44 | component: 'layout/Layout', |
48 | redirect: 'dashboard', | 45 | redirect: 'dashboard', |
49 | children: [ | 46 | children: [{ |
50 | { | 47 | path: 'dashboard', |
51 | path: 'dashboard', | 48 | component: 'views/dashboard/index', |
52 | component: 'views/dashboard/index', | 49 | name: 'Dashboard', |
53 | name: 'Dashboard', | 50 | meta: { |
54 | meta: { title: 'dashboard', icon: 'dashboard', affix: true } | 51 | title: 'dashboard', |
52 | icon: 'dashboard', | ||
53 | affix: true | ||
55 | } | 54 | } |
56 | ] | 55 | }] |
57 | }, | 56 | }, |
58 | { | 57 | { |
59 | path: '/documentation', | 58 | path: '/documentation', |
60 | component: 'layout/Layout', | 59 | component: 'layout/Layout', |
61 | children: [ | 60 | children: [{ |
62 | { | 61 | path: 'index', |
63 | path: 'index', | 62 | component: 'views/documentation/index', |
64 | component: 'views/documentation/index', | 63 | name: 'Documentation', |
65 | name: 'Documentation', | 64 | meta: { |
66 | meta: { title: 'documentation', icon: 'documentation', affix: true } | 65 | title: 'documentation', |
66 | icon: 'documentation', | ||
67 | affix: true | ||
67 | } | 68 | } |
68 | ] | 69 | }] |
69 | }, | 70 | }, |
70 | { | 71 | { |
71 | path: '/guide', | 72 | path: '/guide', |
72 | component: 'layout/Layout', | 73 | component: 'layout/Layout', |
73 | redirect: '/guide/index', | 74 | redirect: '/guide/index', |
74 | children: [ | 75 | children: [{ |
75 | { | 76 | path: 'index', |
76 | path: 'index', | 77 | component: 'views/guide/index', |
77 | component: 'views/guide/index', | 78 | name: 'Guide', |
78 | name: 'Guide', | 79 | meta: { |
79 | meta: { title: 'guide', icon: 'guide', noCache: true } | 80 | title: 'guide', |
81 | icon: 'guide', | ||
82 | noCache: true | ||
80 | } | 83 | } |
81 | ] | 84 | }] |
82 | } | 85 | } |
83 | ] | 86 | ] |
84 | 87 | ||
85 | export const asyncRoutes = [ | 88 | export const asyncRoutes = [{ |
86 | // { | 89 | path: '/permission', |
87 | // path: '/permission', | 90 | component: 'layout/Layout', |
88 | // component: 'layout/Layout', | 91 | redirect: '/permission/index', |
89 | // redirect: '/permission/index', | 92 | alwaysShow: true, |
90 | // alwaysShow: true, | 93 | meta: { |
91 | // meta: { | 94 | title: 'permission', |
92 | // title: 'permission', | 95 | icon: 'lock', |
93 | // icon: 'lock', | 96 | // roles: ['admin', 'assistant', 'runner', 'shoper'] |
94 | // // roles: ['admin', 'assistant', 'runner', 'shoper'] | 97 | }, |
95 | // }, | 98 | children: [{ |
96 | // children: [ | 99 | path: 'page', |
97 | // { | 100 | component: 'views/permission/page', |
98 | // path: 'page', | 101 | name: 'PagePermission', |
99 | // component: 'views/permission/page', | 102 | meta: { |
100 | // name: 'PagePermission', | 103 | title: 'pagePermission', |
101 | // meta: { | 104 | roles: ['admin', 'assistant'] |
102 | // title: 'pagePermission', | 105 | } |
103 | // roles: ['admin','assistant'] | 106 | }, |
104 | // } | 107 | { |
105 | // }, | 108 | path: 'directive', |
106 | // { | 109 | component: 'views/permission/directive', |
107 | // path: 'directive', | 110 | name: 'DirectivePermission', |
108 | // component: 'views/permission/directive', | 111 | meta: { |
109 | // name: 'DirectivePermission', | 112 | title: 'directivePermission', |
110 | // meta: { | 113 | roles: ['shoper'] |
111 | // title: 'directivePermission', | 114 | } |
112 | // roles:['shoper'] | 115 | }, |
113 | // } | 116 | { |
114 | // }, | 117 | path: 'role', |
115 | // { | 118 | component: 'views/permission/role', |
116 | // path: 'role', | 119 | name: 'RolePermission', |
117 | // component: 'views/permission/role', | 120 | meta: { |
118 | // name: 'RolePermission', | 121 | title: 'rolePermission', |
119 | // meta: { | 122 | roles: ['runner'] |
120 | // title: 'rolePermission', | 123 | } |
121 | // roles: ['runner'] | 124 | } |
122 | // } | 125 | ] |
123 | // } | 126 | }, |
124 | // ] | ||
125 | // }, | ||
126 | 127 | ||
127 | { | 128 | { |
128 | path: '/icon', | 129 | path: '/icon', |
129 | component: 'layout/Layout', | 130 | component: 'layout/Layout', |
130 | meta: { | 131 | meta: { |
131 | title: 'ddddd', | 132 | title: 'ddddd', |
132 | icon:'people', | 133 | icon: 'people', |
133 | roles: ['runner'] | 134 | roles: ['runner'] |
134 | }, | 135 | }, |
135 | children: [ | 136 | children: [{ |
136 | { | 137 | path: 'index', |
137 | path: 'index', | 138 | component: 'views/icons/index', |
138 | component: 'views/icons/index', | 139 | name: 'Icons', |
139 | name: 'Icons', | 140 | meta: { |
140 | meta: { title: 'icons', icon: 'icon', noCache: true } | 141 | title: 'icons', |
142 | icon: 'icon', | ||
143 | noCache: true | ||
141 | } | 144 | } |
142 | ] | 145 | }] |
143 | }, | 146 | }, |
144 | 147 | ||
145 | { | 148 | { |
146 | path: '/components', | 149 | path: '/components', |
147 | component: 'layout/Layout', | 150 | component: 'layout/Layout', |
148 | redirect: 'noRedirect', | 151 | redirect: 'noRedirect', |
149 | name: 'ComponentDemo', | 152 | name: 'ComponentDemo', |
150 | meta: { | 153 | meta: { |
151 | title: 'components', | 154 | title: 'components', |
152 | icon: 'component' | 155 | icon: 'component' |
153 | }, | 156 | }, |
154 | children: [ | 157 | children: [{ |
155 | { | ||
156 | path: 'tinymce', | 158 | path: 'tinymce', |
157 | component: 'views/components-demo/tinymce', | 159 | component: 'views/components-demo/tinymce', |
158 | name: 'TinymceDemo', | 160 | name: 'TinymceDemo', |
159 | meta: { title: 'tinymce' } | 161 | meta: { |
162 | title: 'tinymce' | ||
163 | } | ||
160 | }, | 164 | }, |
161 | { | 165 | { |
162 | path: 'markdown', | 166 | path: 'markdown', |
163 | component: 'views/components-demo/markdown', | 167 | component: 'views/components-demo/markdown', |
164 | name: 'MarkdownDemo', | 168 | name: 'MarkdownDemo', |
165 | meta: { title: 'markdown' } | 169 | meta: { |
170 | title: 'markdown' | ||
171 | } | ||
166 | }, | 172 | }, |
167 | { | 173 | { |
168 | path: 'json-editor', | 174 | path: 'json-editor', |
169 | component: 'views/components-demo/json-editor', | 175 | component: 'views/components-demo/json-editor', |
170 | name: 'JsonEditorDemo', | 176 | name: 'JsonEditorDemo', |
171 | meta: { title: 'jsonEditor' } | 177 | meta: { |
178 | title: 'jsonEditor' | ||
179 | } | ||
172 | }, | 180 | }, |
173 | { | 181 | { |
174 | path: 'split-pane', | 182 | path: 'split-pane', |
175 | component: 'views/components-demo/split-pane', | 183 | component: 'views/components-demo/split-pane', |
176 | name: 'SplitpaneDemo', | 184 | name: 'SplitpaneDemo', |
177 | meta: { title: 'splitPane' } | 185 | meta: { |
186 | title: 'splitPane' | ||
187 | } | ||
178 | }, | 188 | }, |
179 | { | 189 | { |
180 | path: 'avatar-upload', | 190 | path: 'avatar-upload', |
181 | component: 'views/components-demo/avatar-upload', | 191 | component: 'views/components-demo/avatar-upload', |
182 | name: 'AvatarUploadDemo', | 192 | name: 'AvatarUploadDemo', |
183 | meta: { title: 'avatarUpload' } | 193 | meta: { |
194 | title: 'avatarUpload' | ||
195 | } | ||
184 | }, | 196 | }, |
185 | { | 197 | { |
186 | path: 'dropzone', | 198 | path: 'dropzone', |
187 | component: 'views/components-demo/dropzone', | 199 | component: 'views/components-demo/dropzone', |
188 | name: 'DropzoneDemo', | 200 | name: 'DropzoneDemo', |
189 | meta: { title: 'dropzone' } | 201 | meta: { |
202 | title: 'dropzone' | ||
203 | } | ||
190 | }, | 204 | }, |
191 | { | 205 | { |
192 | path: 'sticky', | 206 | path: 'sticky', |
193 | component: 'views/components-demo/sticky', | 207 | component: 'views/components-demo/sticky', |
194 | name: 'StickyDemo', | 208 | name: 'StickyDemo', |
195 | meta: { title: 'sticky' } | 209 | meta: { |
210 | title: 'sticky' | ||
211 | } | ||
196 | }, | 212 | }, |
197 | { | 213 | { |
198 | path: 'count-to', | 214 | path: 'count-to', |
199 | component: 'views/components-demo/count-to', | 215 | component: 'views/components-demo/count-to', |
200 | name: 'CountToDemo', | 216 | name: 'CountToDemo', |
201 | meta: { title: 'countTo' } | 217 | meta: { |
218 | title: 'countTo' | ||
219 | } | ||
202 | }, | 220 | }, |
203 | { | 221 | { |
204 | path: 'mixin', | 222 | path: 'mixin', |
205 | component: 'views/components-demo/mixin', | 223 | component: 'views/components-demo/mixin', |
206 | name: 'ComponentMixinDemo', | 224 | name: 'ComponentMixinDemo', |
207 | meta: { title: 'componentMixin' } | 225 | meta: { |
226 | title: 'componentMixin' | ||
227 | } | ||
208 | }, | 228 | }, |
209 | { | 229 | { |
210 | path: 'back-to-top', | 230 | path: 'back-to-top', |
211 | component: 'views/components-demo/back-to-top', | 231 | component: 'views/components-demo/back-to-top', |
212 | name: 'BackToTopDemo', | 232 | name: 'BackToTopDemo', |
213 | meta: { title: 'backToTop' } | 233 | meta: { |
234 | title: 'backToTop' | ||
235 | } | ||
214 | }, | 236 | }, |
215 | { | 237 | { |
216 | path: 'drag-dialog', | 238 | path: 'drag-dialog', |
217 | component: 'views/components-demo/drag-dialog', | 239 | component: 'views/components-demo/drag-dialog', |
218 | name: 'DragDialogDemo', | 240 | name: 'DragDialogDemo', |
219 | meta: { title: 'dragDialog' } | 241 | meta: { |
242 | title: 'dragDialog' | ||
243 | } | ||
220 | }, | 244 | }, |
221 | { | 245 | { |
222 | path: 'drag-select', | 246 | path: 'drag-select', |
223 | component: 'views/components-demo/drag-select', | 247 | component: 'views/components-demo/drag-select', |
224 | name: 'DragSelectDemo', | 248 | name: 'DragSelectDemo', |
225 | meta: { title: 'dragSelect' } | 249 | meta: { |
250 | title: 'dragSelect' | ||
251 | } | ||
226 | }, | 252 | }, |
227 | { | 253 | { |
228 | path: 'dnd-list', | 254 | path: 'dnd-list', |
229 | component: 'views/components-demo/dnd-list', | 255 | component: 'views/components-demo/dnd-list', |
230 | name: 'DndListDemo', | 256 | name: 'DndListDemo', |
231 | meta: { title: 'dndList' } | 257 | meta: { |
258 | title: 'dndList' | ||
259 | } | ||
232 | }, | 260 | }, |
233 | { | 261 | { |
234 | path: 'drag-kanban', | 262 | path: 'drag-kanban', |
235 | component: 'views/components-demo/drag-kanban', | 263 | component: 'views/components-demo/drag-kanban', |
236 | name: 'DragKanbanDemo', | 264 | name: 'DragKanbanDemo', |
237 | meta: { title: 'dragKanban' } | 265 | meta: { |
266 | title: 'dragKanban' | ||
267 | } | ||
238 | } | 268 | } |
239 | ] | 269 | ] |
240 | }, | 270 | }, |
241 | { | 271 | { |
242 | path: '/charts', | 272 | path: '/charts', |
243 | component: 'layout/Layout', | 273 | component: 'layout/Layout', |
244 | redirect: 'noRedirect', | 274 | redirect: 'noRedirect', |
245 | name: 'Charts', | 275 | name: 'Charts', |
246 | meta: { | 276 | meta: { |
247 | title: 'charts', | 277 | title: 'charts', |
248 | icon: 'chart' | 278 | icon: 'chart' |
249 | }, | 279 | }, |
250 | children: [ | 280 | children: [{ |
251 | { | ||
252 | path: 'keyboard', | 281 | path: 'keyboard', |
253 | component: 'views/charts/keyboard', | 282 | component: 'views/charts/keyboard', |
254 | name: 'KeyboardChart', | 283 | name: 'KeyboardChart', |
255 | meta: { title: 'keyboardChart', noCache: true } | 284 | meta: { |
285 | title: 'keyboardChart', | ||
286 | noCache: true | ||
287 | } | ||
256 | }, | 288 | }, |
257 | { | 289 | { |
258 | path: 'line', | 290 | path: 'line', |
259 | component: 'views/charts/line', | 291 | component: 'views/charts/line', |
260 | name: 'LineChart', | 292 | name: 'LineChart', |
261 | meta: { title: 'lineChart', noCache: true } | 293 | meta: { |
294 | title: 'lineChart', | ||
295 | noCache: true | ||
296 | } | ||
262 | }, | 297 | }, |
263 | { | 298 | { |
264 | path: 'mixchart', | 299 | path: 'mixchart', |
265 | component: 'views/charts/mixChart', | 300 | component: 'views/charts/mixChart', |
266 | name: 'MixChart', | 301 | name: 'MixChart', |
267 | meta: { title: 'mixChart', noCache: true } | 302 | meta: { |
303 | title: 'mixChart', | ||
304 | noCache: true | ||
305 | } | ||
268 | } | 306 | } |
269 | ] | 307 | ] |
270 | }, | 308 | }, |
271 | { | 309 | { |
272 | path: '/nested', | 310 | path: '/nested', |
273 | component: 'layout/Layout', | 311 | component: 'layout/Layout', |
274 | redirect: '/nested/menu1/menu1-1', | 312 | redirect: '/nested/menu1/menu1-1', |
275 | name: 'Nested', | 313 | name: 'Nested', |
276 | meta: { | 314 | meta: { |
277 | title: 'nested', | 315 | title: 'nested', |
278 | icon: 'nested' | 316 | icon: 'nested' |
279 | }, | 317 | }, |
280 | children: [ | 318 | children: [{ |
281 | { | ||
282 | path: 'menu1', | 319 | path: 'menu1', |
283 | component: 'views/nested/menu1/index', | 320 | component: 'views/nested/menu1/index', |
284 | name: 'Menu1', | 321 | name: 'Menu1', |
285 | meta: { title: 'menu1' }, | 322 | meta: { |
323 | title: 'menu1' | ||
324 | }, | ||
286 | redirect: '/nested/menu1/menu1-1', | 325 | redirect: '/nested/menu1/menu1-1', |
287 | children: [ | 326 | children: [{ |
288 | { | ||
289 | path: 'menu1-1', | 327 | path: 'menu1-1', |
290 | component: 'views/nested/menu1/menu1-1', | 328 | component: 'views/nested/menu1/menu1-1', |
291 | name: 'Menu1-1', | 329 | name: 'Menu1-1', |
292 | meta: { title: 'menu1-1' } | 330 | meta: { |
331 | title: 'menu1-1' | ||
332 | } | ||
293 | }, | 333 | }, |
294 | { | 334 | { |
295 | path: 'menu1-2', | 335 | path: 'menu1-2', |
296 | component: 'views/nested/menu1/menu1-2', | 336 | component: 'views/nested/menu1/menu1-2', |
297 | name: 'Menu1-2', | 337 | name: 'Menu1-2', |
298 | redirect: '/nested/menu1/menu1-2/menu1-2-1', | 338 | redirect: '/nested/menu1/menu1-2/menu1-2-1', |
299 | meta: { title: 'menu1-2' }, | 339 | meta: { |
300 | children: [ | 340 | title: 'menu1-2' |
301 | { | 341 | }, |
342 | children: [{ | ||
302 | path: 'menu1-2-1', | 343 | path: 'menu1-2-1', |
303 | component: 'views/nested/menu1/menu1-2/menu1-2-1', | 344 | component: 'views/nested/menu1/menu1-2/menu1-2-1', |
304 | name: 'Menu1-2-1', | 345 | name: 'Menu1-2-1', |
305 | meta: { title: 'menu1-2-1' } | 346 | meta: { |
347 | title: 'menu1-2-1' | ||
348 | } | ||
306 | }, | 349 | }, |
307 | { | 350 | { |
308 | path: 'menu1-2-2', | 351 | path: 'menu1-2-2', |
309 | component: 'views/nested/menu1/menu1-2/menu1-2-2', | 352 | component: 'views/nested/menu1/menu1-2/menu1-2-2', |
310 | name: 'Menu1-2-2', | 353 | name: 'Menu1-2-2', |
311 | meta: { title: 'menu1-2-2' } | 354 | meta: { |
355 | title: 'menu1-2-2' | ||
356 | } | ||
312 | } | 357 | } |
313 | ] | 358 | ] |
314 | }, | 359 | }, |
315 | { | 360 | { |
316 | path: 'menu1-3', | 361 | path: 'menu1-3', |
317 | component: 'views/nested/menu1/menu1-3', | 362 | component: 'views/nested/menu1/menu1-3', |
318 | name: 'Menu1-3', | 363 | name: 'Menu1-3', |
319 | meta: { title: 'menu1-3' } | 364 | meta: { |
365 | title: 'menu1-3' | ||
366 | } | ||
320 | } | 367 | } |
321 | ] | 368 | ] |
322 | }, | 369 | }, |
323 | { | 370 | { |
324 | path: 'menu2', | 371 | path: 'menu2', |
325 | name: 'Menu2', | 372 | name: 'Menu2', |
326 | component: 'views/nested/menu2/index', | 373 | component: 'views/nested/menu2/index', |
327 | meta: { title: 'menu2' } | 374 | meta: { |
375 | title: 'menu2' | ||
376 | } | ||
328 | } | 377 | } |
329 | ] | 378 | ] |
330 | }, | 379 | }, |
331 | 380 | ||
332 | { | 381 | { |
333 | path: '/example', | 382 | path: '/example', |
334 | component: 'layout/Layout', | 383 | component: 'layout/Layout', |
335 | redirect: '/example/list', | 384 | redirect: '/example/list', |
336 | name: 'Example', | 385 | name: 'Example', |
337 | meta: { | 386 | meta: { |
338 | title: 'example', | 387 | title: 'example', |
339 | icon: 'example' | 388 | icon: 'example' |
340 | }, | 389 | }, |
341 | children: [ | 390 | children: [{ |
342 | { | ||
343 | path: 'create', | 391 | path: 'create', |
344 | component: 'views/example/create', | 392 | component: 'views/example/create', |
345 | name: 'CreateArticle', | 393 | name: 'CreateArticle', |
346 | meta: { title: 'createArticle', icon: 'edit' } | 394 | meta: { |
395 | title: 'createArticle', | ||
396 | icon: 'edit' | ||
397 | } | ||
347 | }, | 398 | }, |
348 | { | 399 | { |
349 | path: 'edit/:id(\\d+)', | 400 | path: 'edit/:id(\\d+)', |
350 | component: 'views/example/edit', | 401 | component: 'views/example/edit', |
351 | name: 'EditArticle', | 402 | name: 'EditArticle', |
352 | meta: { title: 'editArticle', noCache: true }, | 403 | meta: { |
404 | title: 'editArticle', | ||
405 | noCache: true | ||
406 | }, | ||
353 | hidden: true | 407 | hidden: true |
354 | }, | 408 | }, |
355 | { | 409 | { |
356 | path: 'list', | 410 | path: 'list', |
357 | component: 'views/example/list', | 411 | component: 'views/example/list', |
358 | name: 'ArticleList', | 412 | name: 'ArticleList', |
359 | meta: { title: 'articleList', icon: 'list' } | 413 | meta: { |
414 | title: 'articleList', | ||
415 | icon: 'list' | ||
416 | } | ||
360 | } | 417 | } |
361 | ] | 418 | ] |
362 | }, | 419 | }, |
363 | 420 | ||
364 | { | 421 | { |
365 | path: '/tab', | 422 | path: '/tab', |
366 | component: 'layout/Layout', | 423 | component: 'layout/Layout', |
367 | children: [ | 424 | children: [{ |
368 | { | 425 | path: 'index', |
369 | path: 'index', | 426 | component: 'views/tab/index', |
370 | component: 'views/tab/index', | 427 | name: 'Tab', |
371 | name: 'Tab', | 428 | meta: { |
372 | meta: { title: 'tab', icon: 'tab' } | 429 | title: 'tab', |
430 | icon: 'tab' | ||
373 | } | 431 | } |
374 | ] | 432 | }] |
375 | }, | 433 | }, |
376 | 434 | ||
377 | { | 435 | { |
378 | path: '/error', | 436 | path: '/error', |
379 | component: 'layout/Layout', | 437 | component: 'layout/Layout', |
380 | redirect: 'noRedirect', | 438 | redirect: 'noRedirect', |
381 | name: 'ErrorPages', | 439 | name: 'ErrorPages', |
382 | meta: { | 440 | meta: { |
383 | title: 'errorPages', | 441 | title: 'errorPages', |
384 | icon: '404' | 442 | icon: '404' |
385 | }, | 443 | }, |
386 | children: [ | 444 | children: [{ |
387 | { | ||
388 | path: '401', | 445 | path: '401', |
389 | component: 'views/error-page/401', | 446 | component: 'views/error-page/401', |
390 | name: 'Page401', | 447 | name: 'Page401', |
391 | meta: { title: 'page401', noCache: true } | 448 | meta: { |
449 | title: 'page401', | ||
450 | noCache: true | ||
451 | } | ||
392 | }, | 452 | }, |
393 | { | 453 | { |
394 | path: '404', | 454 | path: '404', |
395 | component: 'views/error-page/404', | 455 | component: 'views/error-page/404', |
396 | name: 'Page404', | 456 | name: 'Page404', |
397 | meta: { title: 'page404', noCache: true } | 457 | meta: { |
458 | title: 'page404', | ||
459 | noCache: true | ||
460 | } | ||
398 | }, | 461 | }, |
399 | { | 462 | { |
400 | path: '500', | 463 | path: '500', |
401 | component: 'views/error-page/500', | 464 | component: 'views/error-page/500', |
402 | name: 'Page500', | 465 | name: 'Page500', |
403 | meta: { title: 'page500', noCache: true } | 466 | meta: { |
467 | title: 'page500', | ||
468 | noCache: true | ||
469 | } | ||
404 | } | 470 | } |
405 | ] | 471 | ] |
406 | }, | 472 | }, |
407 | 473 | ||
408 | { | 474 | { |
409 | path: '/error-log', | 475 | path: '/error-log', |
410 | component: 'layout/Layout', | 476 | component: 'layout/Layout', |
411 | redirect: 'noRedirect', | 477 | redirect: 'noRedirect', |
412 | children: [ | 478 | children: [{ |
413 | { | 479 | path: 'log', |
414 | path: 'log', | 480 | component: 'views/error-log/index', |
415 | component: 'views/error-log/index', | 481 | name: 'ErrorLog', |
416 | name: 'ErrorLog', | 482 | meta: { |
417 | meta: { title: 'errorLog', icon: 'bug' } | 483 | title: 'errorLog', |
484 | icon: 'bug' | ||
418 | } | 485 | } |
419 | ] | 486 | }] |
420 | }, | 487 | }, |
421 | 488 | ||
422 | { | 489 | { |
423 | path: '/excel', | 490 | path: '/excel', |
424 | component: 'layout/Layout', | 491 | component: 'layout/Layout', |
425 | redirect: '/excel/export-excel', | 492 | redirect: '/excel/export-excel', |
426 | name: 'Excel', | 493 | name: 'Excel', |
427 | meta: { | 494 | meta: { |
428 | title: 'excel', | 495 | title: 'excel', |
429 | icon: 'excel' | 496 | icon: 'excel' |
430 | }, | 497 | }, |
431 | children: [ | 498 | children: [{ |
432 | { | ||
433 | path: 'export-excel', | 499 | path: 'export-excel', |
434 | component: 'views/excel/export-excel', | 500 | component: 'views/excel/export-excel', |
435 | name: 'ExportExcel', | 501 | name: 'ExportExcel', |
436 | meta: { title: 'exportExcel' } | 502 | meta: { |
503 | title: 'exportExcel' | ||
504 | } | ||
437 | }, | 505 | }, |
438 | { | 506 | { |
439 | path: 'export-selected-excel', | 507 | path: 'export-selected-excel', |
440 | component: 'views/excel/select-excel', | 508 | component: 'views/excel/select-excel', |
441 | name: 'SelectExcel', | 509 | name: 'SelectExcel', |
442 | meta: { title: 'selectExcel' } | 510 | meta: { |
511 | title: 'selectExcel' | ||
512 | } | ||
443 | }, | 513 | }, |
444 | { | 514 | { |
445 | path: 'export-merge-header', | 515 | path: 'export-merge-header', |
446 | component: 'views/excel/merge-header', | 516 | component: 'views/excel/merge-header', |
447 | name: 'MergeHeader', | 517 | name: 'MergeHeader', |
448 | meta: { title: 'mergeHeader' } | 518 | meta: { |
519 | title: 'mergeHeader' | ||
520 | } | ||
449 | }, | 521 | }, |
450 | { | 522 | { |
451 | path: 'upload-excel', | 523 | path: 'upload-excel', |
452 | component: 'views/excel/upload-excel', | 524 | component: 'views/excel/upload-excel', |
453 | name: 'UploadExcel', | 525 | name: 'UploadExcel', |
454 | meta: { title: 'uploadExcel' } | 526 | meta: { |
527 | title: 'uploadExcel' | ||
528 | } | ||
455 | } | 529 | } |
456 | ] | 530 | ] |
457 | }, | 531 | }, |
458 | 532 | ||
459 | { | 533 | { |
460 | path: '/zip', | 534 | path: '/zip', |
461 | component: 'layout/Layout', | 535 | component: 'layout/Layout', |
462 | redirect: '/zip/download', | 536 | redirect: '/zip/download', |
463 | alwaysShow: true, | 537 | alwaysShow: true, |
464 | meta: { title: 'zip', icon: 'zip' }, | 538 | meta: { |
465 | children: [ | 539 | title: 'zip', |
466 | { | 540 | icon: 'zip' |
467 | path: 'download', | 541 | }, |
468 | component: 'views/zip/index', | 542 | children: [{ |
469 | name: 'ExportZip', | 543 | path: 'download', |
470 | meta: { title: 'exportZip' } | 544 | component: 'views/zip/index', |
545 | name: 'ExportZip', | ||
546 | meta: { | ||
547 | title: 'exportZip' | ||
471 | } | 548 | } |
472 | ] | 549 | }] |
473 | }, | 550 | }, |
474 | 551 | ||
475 | { | 552 | { |
476 | path: '/pdf', | 553 | path: '/pdf', |
477 | component: 'layout/Layout', | 554 | component: 'layout/Layout', |
478 | redirect: '/pdf/index', | 555 | redirect: '/pdf/index', |
479 | children: [ | 556 | children: [{ |
480 | { | 557 | path: 'index', |
481 | path: 'index', | 558 | component: 'views/pdf/index', |
482 | component: 'views/pdf/index', | 559 | name: 'PDF', |
483 | name: 'PDF', | 560 | meta: { |
484 | meta: { title: 'pdf', icon: 'pdf' } | 561 | title: 'pdf', |
562 | icon: 'pdf' | ||
485 | } | 563 | } |
486 | ] | 564 | }] |
487 | }, | 565 | }, |
488 | { | 566 | { |
489 | path: '/pdf/download', | 567 | path: '/pdf/download', |
490 | component: 'views/pdf/download', | 568 | component: 'views/pdf/download', |
491 | hidden: true | 569 | hidden: true |
492 | }, | 570 | }, |
493 | 571 | ||
494 | { | 572 | { |
495 | path: '/theme', | 573 | path: '/theme', |
496 | component: 'layout/Layout', | 574 | component: 'layout/Layout', |
497 | redirect: 'noRedirect', | 575 | redirect: 'noRedirect', |
498 | children: [ | 576 | children: [{ |
499 | { | 577 | path: 'index', |
500 | path: 'index', | 578 | component: 'views/theme/index', |
501 | component: 'views/theme/index', | 579 | name: 'Theme', |
502 | name: 'Theme', | 580 | meta: { |
503 | meta: { title: 'theme', icon: 'theme' } | 581 | title: 'theme', |
582 | icon: 'theme' | ||
504 | } | 583 | } |
505 | ] | 584 | }] |
506 | }, | 585 | }, |
507 | 586 | ||
508 | { | 587 | { |
509 | path: '/clipboard', | 588 | path: '/clipboard', |
510 | component: 'layout/Layout', | 589 | component: 'layout/Layout', |
511 | redirect: 'noRedirect', | 590 | redirect: 'noRedirect', |
512 | children: [ | 591 | children: [{ |
513 | { | 592 | path: 'index', |
514 | path: 'index', | 593 | component: 'views/clipboard/index', |
515 | component: 'views/clipboard/index', | 594 | name: 'ClipboardDemo', |
516 | name: 'ClipboardDemo', | 595 | meta: { |
517 | meta: { title: 'clipboardDemo', icon: 'clipboard' } | 596 | title: 'clipboardDemo', |
597 | icon: 'clipboard' | ||
518 | } | 598 | } |
519 | ] | 599 | }] |
520 | }, | 600 | }, |
521 | 601 | ||
522 | { | 602 | { |
523 | path: '/i18n', | 603 | path: '/i18n', |
524 | component: 'layout/Layout', | 604 | component: 'layout/Layout', |
525 | children: [ | 605 | children: [{ |
526 | { | 606 | path: 'index', |
527 | path: 'index', | 607 | component: 'views/i18n-demo/index', |
528 | component: 'views/i18n-demo/index', | 608 | name: 'I18n', |
529 | name: 'I18n', | 609 | meta: { |
530 | meta: { title: 'i18n', icon: 'international' } | 610 | title: 'i18n', |
611 | icon: 'international' | ||
531 | } | 612 | } |
532 | ] | 613 | }] |
533 | }, | 614 | }, |
534 | 615 | ||
535 | { | 616 | { |
536 | path: 'external-link', | 617 | path: 'external-link', |
537 | component: 'layout/Layout', | 618 | component: 'layout/Layout', |
538 | children: [ | 619 | children: [{ |
539 | { | 620 | path: 'https://github.com/PanJiaChen/vue-element-admin', |
540 | path: 'https://github.com/PanJiaChen/vue-element-admin', | 621 | meta: { |
541 | meta: { title: 'externalLink', icon: 'link' } | 622 | title: 'externalLink', |
src/api/prod.js
1 | import request from '@/utils/request' | 1 | import request from '@/utils/request' |
2 | import { | ||
3 | Notification | ||
4 | } from 'element-ui' | ||
5 | 2 | ||
6 | // export const getPersonInfo = data => { | 3 | // export const getPersonInfo = data => { |
7 | // return service({ | 4 | // return service({ |
8 | // url: '/person_pay/getpersoninfo', | 5 | // url: '/person_pay/getpersoninfo', |
9 | // method: 'post', | 6 | // method: 'post', |
10 | // data | 7 | // data |
11 | // }) | 8 | // }) |
12 | // } | 9 | // } |
13 | 10 | ||
14 | export function fetchList(query) { | 11 | export function fetchList(query) { |
15 | // console.log('api/prod/list/ ==fetchList=== query', query); | ||
16 | const options = { | ||
17 | type: 'error', | ||
18 | message: query, | ||
19 | title: '==query value ===', | ||
20 | showClose: true, | ||
21 | duration: 4000 | ||
22 | } | ||
23 | Notification(options) | ||
24 | return request({ | 12 | return request({ |
25 | url: '/yp/prod/list', | 13 | url: '/yp/prod/list', |
26 | method: 'post', | 14 | method: 'post', |
27 | params: query | 15 | params: query |
28 | }) | 16 | }) |
29 | } | 17 | } |
18 | |||
19 | export function fetchArticle(id) { | ||
20 | return request({ | ||
21 | url: '/yp/prod/detail', | ||
22 | method: 'get', | ||
23 | params: { | ||
24 | id | ||
25 | } | ||
26 | }) | ||
27 | } | ||
28 | |||
29 | export function fetchPv(pv) { | ||
30 | return request({ | ||
31 | url: '/yp/prod/pv', | ||
32 | method: 'get', | ||
33 | params: { | ||
34 | pv | ||
35 | } | ||
36 | }) | ||
37 | } | ||
38 | |||
39 | export function createArticle(data) { | ||
40 | return request({ | ||
41 | url: '/yp/prod/create', | ||
42 | method: 'post', |
src/store/modules/tagsView.js
1 | const state = { | 1 | const state = { |
2 | visitedViews: [], | 2 | visitedViews: [], |
3 | cachedViews: [] | 3 | cachedViews: [] |
4 | } | 4 | } |
5 | 5 | ||
6 | const mutations = { | 6 | const mutations = { |
7 | ADD_VISITED_VIEW: (state, view) => { | 7 | ADD_VISITED_VIEW: (state, view) => { |
8 | if (state.visitedViews.some(v => v.path === view.path)) return | 8 | if (state.visitedViews.some(v => v.path === view.path)) return |
9 | state.visitedViews.push( | 9 | state.visitedViews.push( |
10 | Object.assign({}, view, { | 10 | Object.assign({}, view, { |
11 | title: view.meta.title || 'no-name' | 11 | title: view.meta.title || 'no-name' |
12 | }) | 12 | }) |
13 | ) | 13 | ) |
14 | }, | 14 | }, |
15 | ADD_CACHED_VIEW: (state, view) => { | 15 | ADD_CACHED_VIEW: (state, view) => { |
16 | if (state.cachedViews.includes(view.name)) return | 16 | if (state.cachedViews.includes(view.name)) return |
17 | if (!view.meta.noCache) { | 17 | if (!view.meta.noCache) { |
18 | state.cachedViews.push(view.name) | 18 | state.cachedViews.push(view.name) |
19 | } | 19 | } |
20 | }, | 20 | }, |
21 | 21 | ||
22 | DEL_VISITED_VIEW: (state, view) => { | 22 | DEL_VISITED_VIEW: (state, view) => { |
23 | for (const [i, v] of state.visitedViews.entries()) { | 23 | for (const [i, v] of state.visitedViews.entries()) { |
24 | if (v.path === view.path) { | 24 | if (v.path === view.path) { |
25 | state.visitedViews.splice(i, 1) | 25 | state.visitedViews.splice(i, 1) |
26 | break | 26 | break |
27 | } | 27 | } |
28 | } | 28 | } |
29 | }, | 29 | }, |
30 | DEL_CACHED_VIEW: (state, view) => { | 30 | DEL_CACHED_VIEW: (state, view) => { |
31 | const index = state.cachedViews.indexOf(view.name) | 31 | const index = state.cachedViews.indexOf(view.name) |
32 | index > -1 && state.cachedViews.splice(index, 1) | 32 | index > -1 && state.cachedViews.splice(index, 1) |
33 | }, | 33 | }, |
34 | 34 | ||
35 | DEL_OTHERS_VISITED_VIEWS: (state, view) => { | 35 | DEL_OTHERS_VISITED_VIEWS: (state, view) => { |
36 | state.visitedViews = state.visitedViews.filter(v => { | 36 | state.visitedViews = state.visitedViews.filter(v => { |
37 | return v.meta.affix || v.path === view.path | 37 | return v.meta.affix || v.path === view.path |
38 | }) | 38 | }) |
39 | }, | 39 | }, |
40 | DEL_OTHERS_CACHED_VIEWS: (state, view) => { | 40 | DEL_OTHERS_CACHED_VIEWS: (state, view) => { |
41 | const index = state.cachedViews.indexOf(view.name) | 41 | const index = state.cachedViews.indexOf(view.name) |
42 | if (index > -1) { | 42 | if (index > -1) { |
43 | state.cachedViews = state.cachedViews.slice(index, index + 1) | 43 | state.cachedViews = state.cachedViews.slice(index, index + 1) |
44 | } else { | 44 | } else { |
45 | // if index = -1, there is no cached tags | 45 | // if index = -1, there is no cached tags |
46 | state.cachedViews = [] | 46 | state.cachedViews = [] |
47 | } | 47 | } |
48 | }, | 48 | }, |
49 | 49 | ||
50 | DEL_ALL_VISITED_VIEWS: state => { | 50 | DEL_ALL_VISITED_VIEWS: state => { |
51 | // keep affix tags | 51 | // keep affix tags |
52 | const affixTags = state.visitedViews.filter(tag => tag.meta.affix) | 52 | const affixTags = state.visitedViews.filter(tag => tag.meta.affix) |
53 | state.visitedViews = affixTags | 53 | state.visitedViews = affixTags |
54 | }, | 54 | }, |
55 | DEL_ALL_CACHED_VIEWS: state => { | 55 | DEL_ALL_CACHED_VIEWS: state => { |
56 | state.cachedViews = [] | 56 | state.cachedViews = [] |
57 | }, | 57 | }, |
58 | 58 | ||
59 | UPDATE_VISITED_VIEW: (state, view) => { | 59 | UPDATE_VISITED_VIEW: (state, view) => { |
60 | for (let v of state.visitedViews) { | 60 | for (let v of state.visitedViews) { |
61 | if (v.path === view.path) { | 61 | if (v.path === view.path) { |
62 | v = Object.assign(v, view) | 62 | v = Object.assign(v, view) |
63 | break | 63 | break |
64 | } | 64 | } |
65 | } | 65 | } |
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||
69 | const actions = { | 69 | const actions = { |
70 | addView({ dispatch }, view) { | 70 | addView({ |
71 | dispatch | ||
72 | }, view) { | ||
71 | dispatch('addVisitedView', view) | 73 | dispatch('addVisitedView', view) |
72 | dispatch('addCachedView', view) | 74 | dispatch('addCachedView', view) |
73 | }, | 75 | }, |
74 | addVisitedView({ commit }, view) { | 76 | addVisitedView({ |
77 | commit | ||
78 | }, view) { | ||
75 | commit('ADD_VISITED_VIEW', view) | 79 | commit('ADD_VISITED_VIEW', view) |
76 | }, | 80 | }, |
77 | addCachedView({ commit }, view) { | 81 | addCachedView({ |
82 | commit | ||
83 | }, view) { | ||
78 | commit('ADD_CACHED_VIEW', view) | 84 | commit('ADD_CACHED_VIEW', view) |
79 | }, | 85 | }, |
80 | 86 | ||
81 | delView({ dispatch, state }, view) { | 87 | delView({ |
88 | dispatch, | ||
89 | state | ||
90 | }, view) { | ||
82 | return new Promise(resolve => { | 91 | return new Promise(resolve => { |
83 | dispatch('delVisitedView', view) | 92 | dispatch('delVisitedView', view) |
84 | dispatch('delCachedView', view) | 93 | dispatch('delCachedView', view) |
85 | resolve({ | 94 | resolve({ |
86 | visitedViews: [...state.visitedViews], | 95 | visitedViews: [...state.visitedViews], |
87 | cachedViews: [...state.cachedViews] | 96 | cachedViews: [...state.cachedViews] |
88 | }) | 97 | }) |
89 | }) | 98 | }) |
90 | }, | 99 | }, |
91 | delVisitedView({ commit, state }, view) { | 100 | delVisitedView({ |
101 | commit, | ||
102 | state | ||
103 | }, view) { | ||
92 | return new Promise(resolve => { | 104 | return new Promise(resolve => { |
93 | commit('DEL_VISITED_VIEW', view) | 105 | commit('DEL_VISITED_VIEW', view) |
94 | resolve([...state.visitedViews]) | 106 | resolve([...state.visitedViews]) |
95 | }) | 107 | }) |
96 | }, | 108 | }, |
97 | delCachedView({ commit, state }, view) { | 109 | delCachedView({ |
110 | commit, | ||
111 | state | ||
112 | }, view) { | ||
98 | return new Promise(resolve => { | 113 | return new Promise(resolve => { |
99 | commit('DEL_CACHED_VIEW', view) | 114 | commit('DEL_CACHED_VIEW', view) |
100 | resolve([...state.cachedViews]) | 115 | resolve([...state.cachedViews]) |
101 | }) | 116 | }) |
102 | }, | 117 | }, |
103 | 118 | ||
104 | delOthersViews({ dispatch, state }, view) { | 119 | delOthersViews({ |
120 | dispatch, | ||
121 | state | ||
122 | }, view) { | ||
105 | return new Promise(resolve => { | 123 | return new Promise(resolve => { |
106 | dispatch('delOthersVisitedViews', view) | 124 | dispatch('delOthersVisitedViews', view) |
107 | dispatch('delOthersCachedViews', view) | 125 | dispatch('delOthersCachedViews', view) |
108 | resolve({ | 126 | resolve({ |
109 | visitedViews: [...state.visitedViews], | 127 | visitedViews: [...state.visitedViews], |
110 | cachedViews: [...state.cachedViews] | 128 | cachedViews: [...state.cachedViews] |
111 | }) | 129 | }) |
112 | }) | 130 | }) |
113 | }, | 131 | }, |
114 | delOthersVisitedViews({ commit, state }, view) { | 132 | delOthersVisitedViews({ |
133 | commit, | ||
134 | state | ||
135 | }, view) { | ||
115 | return new Promise(resolve => { | 136 | return new Promise(resolve => { |
116 | commit('DEL_OTHERS_VISITED_VIEWS', view) | 137 | commit('DEL_OTHERS_VISITED_VIEWS', view) |
117 | resolve([...state.visitedViews]) | 138 | resolve([...state.visitedViews]) |
118 | }) | 139 | }) |
119 | }, | 140 | }, |
120 | delOthersCachedViews({ commit, state }, view) { | 141 | delOthersCachedViews({ |
142 | commit, | ||
143 | state | ||
144 | }, view) { | ||
121 | return new Promise(resolve => { | 145 | return new Promise(resolve => { |
122 | commit('DEL_OTHERS_CACHED_VIEWS', view) | 146 | commit('DEL_OTHERS_CACHED_VIEWS', view) |
123 | resolve([...state.cachedViews]) | 147 | resolve([...state.cachedViews]) |
124 | }) | 148 | }) |
125 | }, | 149 | }, |
126 | 150 | ||
127 | delAllViews({ dispatch, state }, view) { | 151 | delAllViews({ |
152 | dispatch, | ||
153 | state | ||
154 | }, view) { | ||
128 | return new Promise(resolve => { | 155 | return new Promise(resolve => { |
129 | dispatch('delAllVisitedViews', view) | 156 | dispatch('delAllVisitedViews', view) |
130 | dispatch('delAllCachedViews', view) | 157 | dispatch('delAllCachedViews', view) |
131 | resolve({ | 158 | resolve({ |
132 | visitedViews: [...state.visitedViews], | 159 | visitedViews: [...state.visitedViews], |
133 | cachedViews: [...state.cachedViews] | 160 | cachedViews: [...state.cachedViews] |
134 | }) | 161 | }) |
135 | }) | 162 | }) |
136 | }, | 163 | }, |
137 | delAllVisitedViews({ commit, state }) { | 164 | delAllVisitedViews({ |
165 | commit, | ||
166 | state | ||
167 | }) { | ||
138 | return new Promise(resolve => { | 168 | return new Promise(resolve => { |
139 | commit('DEL_ALL_VISITED_VIEWS') | 169 | commit('DEL_ALL_VISITED_VIEWS') |
140 | resolve([...state.visitedViews]) | 170 | resolve([...state.visitedViews]) |
141 | }) | 171 | }) |
142 | }, | 172 | }, |
143 | delAllCachedViews({ commit, state }) { | 173 | delAllCachedViews({ |
174 | commit, | ||
175 | state | ||
176 | }) { | ||
144 | return new Promise(resolve => { | 177 | return new Promise(resolve => { |
145 | commit('DEL_ALL_CACHED_VIEWS') | 178 | commit('DEL_ALL_CACHED_VIEWS') |
146 | resolve([...state.cachedViews]) | 179 | resolve([...state.cachedViews]) |
147 | }) | 180 | }) |
148 | }, | 181 | }, |
149 | 182 | ||
150 | updateVisitedView({ commit }, view) { | 183 | updateVisitedView({ |
184 | commit | ||
185 | }, view) { | ||
151 | commit('UPDATE_VISITED_VIEW', view) | 186 | commit('UPDATE_VISITED_VIEW', view) |
152 | } | 187 | } |
153 | } | 188 | } |
154 | 189 | ||
155 | export default { | 190 | export default { |
156 | namespaced: true, | 191 | namespaced: true, |
157 | state, | 192 | state, |
158 | mutations, | 193 | mutations, |
159 | actions | 194 | actions |
160 | } | 195 | } |
161 | 196 |
src/views/prod/list.vue
1 | <template> | 1 | <template> |
2 | <div class="app-container"> | 2 | <div class="app-container"> |
3 | <!-- Note that row-key is necessary to get a correct row order. --> | ||
4 | <el-table | 3 | <el-table |
5 | ref="dragTable" | ||
6 | v-loading="listLoading" | 4 | v-loading="listLoading" |
7 | :data="list" | 5 | :data="list" |
8 | row-key="id" | ||
9 | border | 6 | border |
10 | fit | 7 | fit |
11 | highlight-current-row | 8 | highlight-current-row |
12 | style="width: 100%" | 9 | style="width: 100%" |
13 | > | 10 | > |
14 | <el-table-column | 11 | <el-table-column |
15 | align="center" | 12 | align="center" |
16 | label="PID" | 13 | label="ID" |
17 | width="65" | 14 | width="80" |
18 | > | 15 | > |
19 | <template slot-scope="{row}"> | 16 | <template slot-scope="scope"> |
20 | <span>{{ row.id }}</span> | 17 | <span>{{ scope.row.id }}</span> |
21 | </template> | 18 | </template> |
22 | </el-table-column> | 19 | </el-table-column> |
23 | 20 | ||
24 | <el-table-column | 21 | <el-table-column |
25 | width="180px" | 22 | width="180px" |
26 | align="center" | 23 | align="center" |
27 | label="Date2" | 24 | label="Date" |
28 | > | 25 | > |
29 | <template slot-scope="{row}"> | 26 | <template slot-scope="scope"> |
30 | <span>{{ row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span> | 27 | <span>{{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span> |
31 | </template> | 28 | </template> |
32 | </el-table-column> | 29 | </el-table-column> |
33 | 30 | ||
34 | <el-table-column | 31 | <el-table-column |
35 | min-width="300px" | 32 | width="120px" |
36 | label="Title" | ||
37 | > | ||
38 | <template slot-scope="{row}"> | ||
39 | <span>{{ row.title }}</span> | ||
40 | </template> | ||
41 | </el-table-column> | ||
42 | |||
43 | <el-table-column | ||
44 | width="110px" | ||
45 | align="center" | 33 | align="center" |
46 | label="Author" | 34 | label="Author" |
47 | > | 35 | > |
48 | <template slot-scope="{row}"> | 36 | <template slot-scope="scope"> |
49 | <span>{{ row.author }}</span> | 37 | <span>{{ scope.row.author }}</span> |
50 | </template> | 38 | </template> |
51 | </el-table-column> | 39 | </el-table-column> |
52 | 40 | ||
53 | <el-table-column | 41 | <el-table-column |
54 | width="100px" | 42 | width="100px" |
55 | label="Importance" | 43 | label="Importance" |
56 | > | 44 | > |
57 | <template slot-scope="{row}"> | 45 | <template slot-scope="scope"> |
58 | <svg-icon | 46 | <svg-icon |
59 | v-for="n in + row.importance" | 47 | v-for="n in +scope.row.importance" |
60 | :key="n" | 48 | :key="n" |
61 | icon-class="star" | 49 | icon-class="star" |
62 | class="icon-star" | 50 | class="meta-item__icon" |
63 | /> | 51 | /> |
64 | </template> | 52 | </template> |
65 | </el-table-column> | 53 | </el-table-column> |
66 | 54 | ||
67 | <el-table-column | 55 | <el-table-column |
68 | align="center" | ||
69 | label="Readings" | ||
70 | width="95" | ||
71 | > | ||
72 | <template slot-scope="{row}"> | ||
73 | <span>{{ row.pageviews }}</span> | ||
74 | </template> | ||
75 | </el-table-column> | ||
76 | |||
77 | <el-table-column | ||
78 | class-name="status-col" | 56 | class-name="status-col" |
79 | label="Status" | 57 | label="Status" |
80 | width="110" | 58 | width="110" |
81 | > | 59 | > |
82 | <template slot-scope="{row}"> | 60 | <template slot-scope="{row}"> |
83 | <el-tag :type="row.status | statusFilter"> | 61 | <el-tag :type="row.status | statusFilter"> |
84 | {{ row.status }} | 62 | {{ row.status }} |
85 | </el-tag> | 63 | </el-tag> |
86 | </template> | 64 | </template> |
87 | </el-table-column> | 65 | </el-table-column> |
88 | 66 | ||
89 | <el-table-column | 67 | <el-table-column |
68 | min-width="300px" | ||
69 | label="Title" | ||
70 | > | ||
71 | <template slot-scope="{row}"> | ||
72 | <router-link | ||
73 | :to="'/example/edit/'+row.id" | ||
74 | class="link-type" | ||
75 | > | ||
76 | <span>{{ row.title }}</span> | ||
77 | </router-link> | ||
78 | </template> | ||
79 | </el-table-column> | ||
80 | |||
81 | <el-table-column | ||
90 | align="center" | 82 | align="center" |
91 | label="Drag" | 83 | label="Actions" |
92 | width="80" | 84 | width="120" |
93 | > | 85 | > |
94 | <template slot-scope="{}"> | 86 | <template slot-scope="scope"> |
95 | <svg-icon | 87 | <router-link :to="'/example/edit/'+scope.row.id"> |
96 | class="drag-handler" | 88 | <el-button |
97 | icon-class="drag" | 89 | type="primary" |
98 | /> | 90 | size="small" |
91 | icon="el-icon-edit" | ||
92 | > | ||
93 | Edit | ||
94 | </el-button> | ||
95 | </router-link> | ||
99 | </template> | 96 | </template> |
100 | </el-table-column> | 97 | </el-table-column> |
101 | </el-table> | 98 | </el-table> |
102 | <!-- $t is vue-i18n global function to translate lang (lang in @/lang) --> | 99 | |
103 | <div class="show-d"> | 100 | <pagination |
104 | <el-tag style="margin-right:12px;">{{ $t('table.dragTips1') }} :</el-tag> {{ oldList }} | 101 | v-show="total>0" |
105 | </div> | 102 | :total="total" |
106 | <div class="show-d"> | 103 | :page.sync="listQuery.page" |
107 | <el-tag>{{ $t('table.dragTips2') }} :</el-tag> {{ newList }} | 104 | :limit.sync="listQuery.limit" |
108 | </div> | 105 | @pagination="getList" |
106 | /> | ||
109 | </div> | 107 | </div> |
110 | </template> | 108 | </template> |
111 | 109 | ||
112 | <script> | 110 | <script> |
113 | import { | 111 | import { fetchList } from '@/api/article' |
114 | fetchList | 112 | import Pagination from '@/components/Pagination' // Secondary package based on el-pagination |
115 | // fetchPv | ||
116 | // createUser, | ||
117 | // updateUser, | ||
118 | // delUser | ||
119 | } from '@/api/prod' | ||
120 | import Sortable from 'sortablejs' | ||
121 | // import waves from '@/directive/waves' // waves directive | ||
122 | // import { parseTime } from "@/utils"; | ||
123 | // import Pagination from "@/components/Pagination"; // secondary package based on el-pagination | ||
124 | 113 | ||
125 | export default { | 114 | export default { |
126 | name: 'DragTable', | 115 | name: 'ArticleList', |
116 | components: { Pagination }, | ||
127 | filters: { | 117 | filters: { |
128 | statusFilter(status) { | 118 | statusFilter(status) { |
129 | const statusMap = { | 119 | const statusMap = { |
130 | published: 'success', | 120 | published: 'success', |
131 | draft: 'info', | 121 | draft: 'info', |
132 | deleted: 'danger' | 122 | deleted: 'danger' |
133 | } | 123 | } |
134 | return statusMap[status] | 124 | return statusMap[status] |
135 | } | 125 | } |
136 | }, | 126 | }, |
137 | data() { | 127 | data() { |
138 | return { | 128 | return { |
139 | list: null, | 129 | list: null, |
140 | total: null, | 130 | total: 0, |
141 | listLoading: true, | 131 | listLoading: true, |
142 | listQuery: { | 132 | listQuery: { |
143 | page: 1, | 133 | page: 1, |
144 | limit: 10 | 134 | limit: 20 |
145 | }, | 135 | } |
146 | sortable: null, | ||
147 | oldList: [], | ||
148 | newList: [] | ||
149 | } | 136 | } |
150 | }, | 137 | }, |
151 | created() { | 138 | created() { |
152 | this.getList() | 139 | this.getList() |
153 | }, | 140 | }, |
154 | methods: { | 141 | methods: { |
155 | async getList() { | 142 | getList() { |
156 | console.log('test======>', 'prod ..... -----getList') | ||
157 | this.listLoading = true | 143 | this.listLoading = true |
158 | const { data } = await fetchList(this.listQuery) | 144 | fetchList(this.listQuery).then(response => { |
159 | console.log('data===========getList=======', data) | 145 | this.list = response.data.items |
160 | this.list = data.items | 146 | this.total = response.data.total |
161 | this.total = data.total | 147 | this.listLoading = false |
162 | // this.listLoading = false; | ||
163 | // this.oldList = this.list.map(v => v.id); | ||
164 | // this.newList = this.oldList.slice(); | ||
165 | // this.$nextTick(() => { | ||
166 | // this.setSort(); | ||
167 | // }); | ||
168 | }, | ||
169 | setSort() { | ||
170 | const el = this.$refs.dragTable.$el.querySelectorAll( | ||
171 | '.el-table__body-wrapper > table > tbody' | ||
172 | )[0] | ||
173 | this.sortable = Sortable.create(el, { | ||
174 | ghostClass: 'sortable-ghost', // Class name for the drop placeholder, | ||
175 | setData: function(dataTransfer) { | ||
176 | // to avoid Firefox bug | ||
177 | // Detail see : https://github.com/RubaXa/Sortable/issues/1012 | ||
178 | dataTransfer.setData('Text', '') | ||
179 | }, | ||
180 | onEnd: evt => { | ||
181 | const targetRow = this.list.splice(evt.oldIndex, 1)[0] | ||
182 | this.list.splice(evt.newIndex, 0, targetRow) | ||
183 | |||
184 | // for show the changes, you can delete in you code | ||
185 | const tempIndex = this.newList.splice(evt.oldIndex, 1)[0] | ||
186 | this.newList.splice(evt.newIndex, 0, tempIndex) | ||
187 | } | ||
188 | }) | 148 | }) |
189 | } | 149 | } |
190 | } | 150 | } |
191 | } | 151 | } |
192 | </script> | 152 | </script> |
193 | 153 | ||
194 | <style> |