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,135 +0,0 @@ |
| 1 | -import Mock from 'mockjs' | |
| 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 | -] |
mock/role/routes.js
| 1 | 1 | // Just a mock data |
| 2 | 2 | |
| 3 | -export const constantRoutes = [ | |
| 4 | - { | |
| 3 | +export const constantRoutes = [{ | |
| 5 | 4 | path: '/redirect', |
| 6 | 5 | component: 'layout/Layout', |
| 7 | 6 | hidden: true, |
| 8 | - children: [ | |
| 9 | - { | |
| 10 | - path: '/redirect/:path*', | |
| 11 | - component: 'views/redirect/index' | |
| 12 | - } | |
| 13 | - ] | |
| 7 | + children: [{ | |
| 8 | + path: '/redirect/:path*', | |
| 9 | + component: 'views/redirect/index' | |
| 10 | + }] | |
| 14 | 11 | }, |
| 15 | 12 | { |
| 16 | 13 | path: '/login', |
| ... | ... | @@ -46,100 +43,106 @@ export const constantRoutes = [ |
| 46 | 43 | path: '', |
| 47 | 44 | component: 'layout/Layout', |
| 48 | 45 | redirect: 'dashboard', |
| 49 | - children: [ | |
| 50 | - { | |
| 51 | - path: 'dashboard', | |
| 52 | - component: 'views/dashboard/index', | |
| 53 | - name: 'Dashboard', | |
| 54 | - meta: { title: 'dashboard', icon: 'dashboard', affix: true } | |
| 46 | + children: [{ | |
| 47 | + path: 'dashboard', | |
| 48 | + component: 'views/dashboard/index', | |
| 49 | + name: 'Dashboard', | |
| 50 | + meta: { | |
| 51 | + title: 'dashboard', | |
| 52 | + icon: 'dashboard', | |
| 53 | + affix: true | |
| 55 | 54 | } |
| 56 | - ] | |
| 55 | + }] | |
| 57 | 56 | }, |
| 58 | 57 | { |
| 59 | 58 | path: '/documentation', |
| 60 | 59 | component: 'layout/Layout', |
| 61 | - children: [ | |
| 62 | - { | |
| 63 | - path: 'index', | |
| 64 | - component: 'views/documentation/index', | |
| 65 | - name: 'Documentation', | |
| 66 | - meta: { title: 'documentation', icon: 'documentation', affix: true } | |
| 60 | + children: [{ | |
| 61 | + path: 'index', | |
| 62 | + component: 'views/documentation/index', | |
| 63 | + name: 'Documentation', | |
| 64 | + meta: { | |
| 65 | + title: 'documentation', | |
| 66 | + icon: 'documentation', | |
| 67 | + affix: true | |
| 67 | 68 | } |
| 68 | - ] | |
| 69 | + }] | |
| 69 | 70 | }, |
| 70 | 71 | { |
| 71 | 72 | path: '/guide', |
| 72 | 73 | component: 'layout/Layout', |
| 73 | 74 | redirect: '/guide/index', |
| 74 | - children: [ | |
| 75 | - { | |
| 76 | - path: 'index', | |
| 77 | - component: 'views/guide/index', | |
| 78 | - name: 'Guide', | |
| 79 | - meta: { title: 'guide', icon: 'guide', noCache: true } | |
| 75 | + children: [{ | |
| 76 | + path: 'index', | |
| 77 | + component: 'views/guide/index', | |
| 78 | + name: 'Guide', | |
| 79 | + meta: { | |
| 80 | + title: 'guide', | |
| 81 | + icon: 'guide', | |
| 82 | + noCache: true | |
| 80 | 83 | } |
| 81 | - ] | |
| 84 | + }] | |
| 82 | 85 | } |
| 83 | 86 | ] |
| 84 | 87 | |
| 85 | -export const asyncRoutes = [ | |
| 86 | - // { | |
| 87 | - // path: '/permission', | |
| 88 | - // component: 'layout/Layout', | |
| 89 | - // redirect: '/permission/index', | |
| 90 | - // alwaysShow: true, | |
| 91 | - // meta: { | |
| 92 | - // title: 'permission', | |
| 93 | - // icon: 'lock', | |
| 94 | - // // roles: ['admin', 'assistant', 'runner', 'shoper'] | |
| 95 | - // }, | |
| 96 | - // children: [ | |
| 97 | - // { | |
| 98 | - // path: 'page', | |
| 99 | - // component: 'views/permission/page', | |
| 100 | - // name: 'PagePermission', | |
| 101 | - // meta: { | |
| 102 | - // title: 'pagePermission', | |
| 103 | - // roles: ['admin','assistant'] | |
| 104 | - // } | |
| 105 | - // }, | |
| 106 | - // { | |
| 107 | - // path: 'directive', | |
| 108 | - // component: 'views/permission/directive', | |
| 109 | - // name: 'DirectivePermission', | |
| 110 | - // meta: { | |
| 111 | - // title: 'directivePermission', | |
| 112 | - // roles:['shoper'] | |
| 113 | - // } | |
| 114 | - // }, | |
| 115 | - // { | |
| 116 | - // path: 'role', | |
| 117 | - // component: 'views/permission/role', | |
| 118 | - // name: 'RolePermission', | |
| 119 | - // meta: { | |
| 120 | - // title: 'rolePermission', | |
| 121 | - // roles: ['runner'] | |
| 122 | - // } | |
| 123 | - // } | |
| 124 | - // ] | |
| 125 | - // }, | |
| 88 | +export const asyncRoutes = [{ | |
| 89 | + path: '/permission', | |
| 90 | + component: 'layout/Layout', | |
| 91 | + redirect: '/permission/index', | |
| 92 | + alwaysShow: true, | |
| 93 | + meta: { | |
| 94 | + title: 'permission', | |
| 95 | + icon: 'lock', | |
| 96 | + // roles: ['admin', 'assistant', 'runner', 'shoper'] | |
| 97 | + }, | |
| 98 | + children: [{ | |
| 99 | + path: 'page', | |
| 100 | + component: 'views/permission/page', | |
| 101 | + name: 'PagePermission', | |
| 102 | + meta: { | |
| 103 | + title: 'pagePermission', | |
| 104 | + roles: ['admin', 'assistant'] | |
| 105 | + } | |
| 106 | + }, | |
| 107 | + { | |
| 108 | + path: 'directive', | |
| 109 | + component: 'views/permission/directive', | |
| 110 | + name: 'DirectivePermission', | |
| 111 | + meta: { | |
| 112 | + title: 'directivePermission', | |
| 113 | + roles: ['shoper'] | |
| 114 | + } | |
| 115 | + }, | |
| 116 | + { | |
| 117 | + path: 'role', | |
| 118 | + component: 'views/permission/role', | |
| 119 | + name: 'RolePermission', | |
| 120 | + meta: { | |
| 121 | + title: 'rolePermission', | |
| 122 | + roles: ['runner'] | |
| 123 | + } | |
| 124 | + } | |
| 125 | + ] | |
| 126 | + }, | |
| 126 | 127 | |
| 127 | 128 | { |
| 128 | 129 | path: '/icon', |
| 129 | 130 | component: 'layout/Layout', |
| 130 | 131 | meta: { |
| 131 | 132 | title: 'ddddd', |
| 132 | - icon:'people', | |
| 133 | + icon: 'people', | |
| 133 | 134 | roles: ['runner'] |
| 134 | 135 | }, |
| 135 | - children: [ | |
| 136 | - { | |
| 137 | - path: 'index', | |
| 138 | - component: 'views/icons/index', | |
| 139 | - name: 'Icons', | |
| 140 | - meta: { title: 'icons', icon: 'icon', noCache: true } | |
| 136 | + children: [{ | |
| 137 | + path: 'index', | |
| 138 | + component: 'views/icons/index', | |
| 139 | + name: 'Icons', | |
| 140 | + meta: { | |
| 141 | + title: 'icons', | |
| 142 | + icon: 'icon', | |
| 143 | + noCache: true | |
| 141 | 144 | } |
| 142 | - ] | |
| 145 | + }] | |
| 143 | 146 | }, |
| 144 | 147 | |
| 145 | 148 | { |
| ... | ... | @@ -151,90 +154,117 @@ export const asyncRoutes = [ |
| 151 | 154 | title: 'components', |
| 152 | 155 | icon: 'component' |
| 153 | 156 | }, |
| 154 | - children: [ | |
| 155 | - { | |
| 157 | + children: [{ | |
| 156 | 158 | path: 'tinymce', |
| 157 | 159 | component: 'views/components-demo/tinymce', |
| 158 | 160 | name: 'TinymceDemo', |
| 159 | - meta: { title: 'tinymce' } | |
| 161 | + meta: { | |
| 162 | + title: 'tinymce' | |
| 163 | + } | |
| 160 | 164 | }, |
| 161 | 165 | { |
| 162 | 166 | path: 'markdown', |
| 163 | 167 | component: 'views/components-demo/markdown', |
| 164 | 168 | name: 'MarkdownDemo', |
| 165 | - meta: { title: 'markdown' } | |
| 169 | + meta: { | |
| 170 | + title: 'markdown' | |
| 171 | + } | |
| 166 | 172 | }, |
| 167 | 173 | { |
| 168 | 174 | path: 'json-editor', |
| 169 | 175 | component: 'views/components-demo/json-editor', |
| 170 | 176 | name: 'JsonEditorDemo', |
| 171 | - meta: { title: 'jsonEditor' } | |
| 177 | + meta: { | |
| 178 | + title: 'jsonEditor' | |
| 179 | + } | |
| 172 | 180 | }, |
| 173 | 181 | { |
| 174 | 182 | path: 'split-pane', |
| 175 | 183 | component: 'views/components-demo/split-pane', |
| 176 | 184 | name: 'SplitpaneDemo', |
| 177 | - meta: { title: 'splitPane' } | |
| 185 | + meta: { | |
| 186 | + title: 'splitPane' | |
| 187 | + } | |
| 178 | 188 | }, |
| 179 | 189 | { |
| 180 | 190 | path: 'avatar-upload', |
| 181 | 191 | component: 'views/components-demo/avatar-upload', |
| 182 | 192 | name: 'AvatarUploadDemo', |
| 183 | - meta: { title: 'avatarUpload' } | |
| 193 | + meta: { | |
| 194 | + title: 'avatarUpload' | |
| 195 | + } | |
| 184 | 196 | }, |
| 185 | 197 | { |
| 186 | 198 | path: 'dropzone', |
| 187 | 199 | component: 'views/components-demo/dropzone', |
| 188 | 200 | name: 'DropzoneDemo', |
| 189 | - meta: { title: 'dropzone' } | |
| 201 | + meta: { | |
| 202 | + title: 'dropzone' | |
| 203 | + } | |
| 190 | 204 | }, |
| 191 | 205 | { |
| 192 | 206 | path: 'sticky', |
| 193 | 207 | component: 'views/components-demo/sticky', |
| 194 | 208 | name: 'StickyDemo', |
| 195 | - meta: { title: 'sticky' } | |
| 209 | + meta: { | |
| 210 | + title: 'sticky' | |
| 211 | + } | |
| 196 | 212 | }, |
| 197 | 213 | { |
| 198 | 214 | path: 'count-to', |
| 199 | 215 | component: 'views/components-demo/count-to', |
| 200 | 216 | name: 'CountToDemo', |
| 201 | - meta: { title: 'countTo' } | |
| 217 | + meta: { | |
| 218 | + title: 'countTo' | |
| 219 | + } | |
| 202 | 220 | }, |
| 203 | 221 | { |
| 204 | 222 | path: 'mixin', |
| 205 | 223 | component: 'views/components-demo/mixin', |
| 206 | 224 | name: 'ComponentMixinDemo', |
| 207 | - meta: { title: 'componentMixin' } | |
| 225 | + meta: { | |
| 226 | + title: 'componentMixin' | |
| 227 | + } | |
| 208 | 228 | }, |
| 209 | 229 | { |
| 210 | 230 | path: 'back-to-top', |
| 211 | 231 | component: 'views/components-demo/back-to-top', |
| 212 | 232 | name: 'BackToTopDemo', |
| 213 | - meta: { title: 'backToTop' } | |
| 233 | + meta: { | |
| 234 | + title: 'backToTop' | |
| 235 | + } | |
| 214 | 236 | }, |
| 215 | 237 | { |
| 216 | 238 | path: 'drag-dialog', |
| 217 | 239 | component: 'views/components-demo/drag-dialog', |
| 218 | 240 | name: 'DragDialogDemo', |
| 219 | - meta: { title: 'dragDialog' } | |
| 241 | + meta: { | |
| 242 | + title: 'dragDialog' | |
| 243 | + } | |
| 220 | 244 | }, |
| 221 | 245 | { |
| 222 | 246 | path: 'drag-select', |
| 223 | 247 | component: 'views/components-demo/drag-select', |
| 224 | 248 | name: 'DragSelectDemo', |
| 225 | - meta: { title: 'dragSelect' } | |
| 249 | + meta: { | |
| 250 | + title: 'dragSelect' | |
| 251 | + } | |
| 226 | 252 | }, |
| 227 | 253 | { |
| 228 | 254 | path: 'dnd-list', |
| 229 | 255 | component: 'views/components-demo/dnd-list', |
| 230 | 256 | name: 'DndListDemo', |
| 231 | - meta: { title: 'dndList' } | |
| 257 | + meta: { | |
| 258 | + title: 'dndList' | |
| 259 | + } | |
| 232 | 260 | }, |
| 233 | 261 | { |
| 234 | 262 | path: 'drag-kanban', |
| 235 | 263 | component: 'views/components-demo/drag-kanban', |
| 236 | 264 | name: 'DragKanbanDemo', |
| 237 | - meta: { title: 'dragKanban' } | |
| 265 | + meta: { | |
| 266 | + title: 'dragKanban' | |
| 267 | + } | |
| 238 | 268 | } |
| 239 | 269 | ] |
| 240 | 270 | }, |
| ... | ... | @@ -247,24 +277,32 @@ export const asyncRoutes = [ |
| 247 | 277 | title: 'charts', |
| 248 | 278 | icon: 'chart' |
| 249 | 279 | }, |
| 250 | - children: [ | |
| 251 | - { | |
| 280 | + children: [{ | |
| 252 | 281 | path: 'keyboard', |
| 253 | 282 | component: 'views/charts/keyboard', |
| 254 | 283 | name: 'KeyboardChart', |
| 255 | - meta: { title: 'keyboardChart', noCache: true } | |
| 284 | + meta: { | |
| 285 | + title: 'keyboardChart', | |
| 286 | + noCache: true | |
| 287 | + } | |
| 256 | 288 | }, |
| 257 | 289 | { |
| 258 | 290 | path: 'line', |
| 259 | 291 | component: 'views/charts/line', |
| 260 | 292 | name: 'LineChart', |
| 261 | - meta: { title: 'lineChart', noCache: true } | |
| 293 | + meta: { | |
| 294 | + title: 'lineChart', | |
| 295 | + noCache: true | |
| 296 | + } | |
| 262 | 297 | }, |
| 263 | 298 | { |
| 264 | 299 | path: 'mixchart', |
| 265 | 300 | component: 'views/charts/mixChart', |
| 266 | 301 | name: 'MixChart', |
| 267 | - meta: { title: 'mixChart', noCache: true } | |
| 302 | + meta: { | |
| 303 | + title: 'mixChart', | |
| 304 | + noCache: true | |
| 305 | + } | |
| 268 | 306 | } |
| 269 | 307 | ] |
| 270 | 308 | }, |
| ... | ... | @@ -277,38 +315,45 @@ export const asyncRoutes = [ |
| 277 | 315 | title: 'nested', |
| 278 | 316 | icon: 'nested' |
| 279 | 317 | }, |
| 280 | - children: [ | |
| 281 | - { | |
| 318 | + children: [{ | |
| 282 | 319 | path: 'menu1', |
| 283 | 320 | component: 'views/nested/menu1/index', |
| 284 | 321 | name: 'Menu1', |
| 285 | - meta: { title: 'menu1' }, | |
| 322 | + meta: { | |
| 323 | + title: 'menu1' | |
| 324 | + }, | |
| 286 | 325 | redirect: '/nested/menu1/menu1-1', |
| 287 | - children: [ | |
| 288 | - { | |
| 326 | + children: [{ | |
| 289 | 327 | path: 'menu1-1', |
| 290 | 328 | component: 'views/nested/menu1/menu1-1', |
| 291 | 329 | name: 'Menu1-1', |
| 292 | - meta: { title: 'menu1-1' } | |
| 330 | + meta: { | |
| 331 | + title: 'menu1-1' | |
| 332 | + } | |
| 293 | 333 | }, |
| 294 | 334 | { |
| 295 | 335 | path: 'menu1-2', |
| 296 | 336 | component: 'views/nested/menu1/menu1-2', |
| 297 | 337 | name: 'Menu1-2', |
| 298 | 338 | redirect: '/nested/menu1/menu1-2/menu1-2-1', |
| 299 | - meta: { title: 'menu1-2' }, | |
| 300 | - children: [ | |
| 301 | - { | |
| 339 | + meta: { | |
| 340 | + title: 'menu1-2' | |
| 341 | + }, | |
| 342 | + children: [{ | |
| 302 | 343 | path: 'menu1-2-1', |
| 303 | 344 | component: 'views/nested/menu1/menu1-2/menu1-2-1', |
| 304 | 345 | name: 'Menu1-2-1', |
| 305 | - meta: { title: 'menu1-2-1' } | |
| 346 | + meta: { | |
| 347 | + title: 'menu1-2-1' | |
| 348 | + } | |
| 306 | 349 | }, |
| 307 | 350 | { |
| 308 | 351 | path: 'menu1-2-2', |
| 309 | 352 | component: 'views/nested/menu1/menu1-2/menu1-2-2', |
| 310 | 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 | }, |
| ... | ... | @@ -316,7 +361,9 @@ export const asyncRoutes = [ |
| 316 | 361 | path: 'menu1-3', |
| 317 | 362 | component: 'views/nested/menu1/menu1-3', |
| 318 | 363 | name: 'Menu1-3', |
| 319 | - meta: { title: 'menu1-3' } | |
| 364 | + meta: { | |
| 365 | + title: 'menu1-3' | |
| 366 | + } | |
| 320 | 367 | } |
| 321 | 368 | ] |
| 322 | 369 | }, |
| ... | ... | @@ -324,7 +371,9 @@ export const asyncRoutes = [ |
| 324 | 371 | path: 'menu2', |
| 325 | 372 | name: 'Menu2', |
| 326 | 373 | component: 'views/nested/menu2/index', |
| 327 | - meta: { title: 'menu2' } | |
| 374 | + meta: { | |
| 375 | + title: 'menu2' | |
| 376 | + } | |
| 328 | 377 | } |
| 329 | 378 | ] |
| 330 | 379 | }, |
| ... | ... | @@ -338,25 +387,33 @@ export const asyncRoutes = [ |
| 338 | 387 | title: 'example', |
| 339 | 388 | icon: 'example' |
| 340 | 389 | }, |
| 341 | - children: [ | |
| 342 | - { | |
| 390 | + children: [{ | |
| 343 | 391 | path: 'create', |
| 344 | 392 | component: 'views/example/create', |
| 345 | 393 | name: 'CreateArticle', |
| 346 | - meta: { title: 'createArticle', icon: 'edit' } | |
| 394 | + meta: { | |
| 395 | + title: 'createArticle', | |
| 396 | + icon: 'edit' | |
| 397 | + } | |
| 347 | 398 | }, |
| 348 | 399 | { |
| 349 | 400 | path: 'edit/:id(\\d+)', |
| 350 | 401 | component: 'views/example/edit', |
| 351 | 402 | name: 'EditArticle', |
| 352 | - meta: { title: 'editArticle', noCache: true }, | |
| 403 | + meta: { | |
| 404 | + title: 'editArticle', | |
| 405 | + noCache: true | |
| 406 | + }, | |
| 353 | 407 | hidden: true |
| 354 | 408 | }, |
| 355 | 409 | { |
| 356 | 410 | path: 'list', |
| 357 | 411 | component: 'views/example/list', |
| 358 | 412 | name: 'ArticleList', |
| 359 | - meta: { title: 'articleList', icon: 'list' } | |
| 413 | + meta: { | |
| 414 | + title: 'articleList', | |
| 415 | + icon: 'list' | |
| 416 | + } | |
| 360 | 417 | } |
| 361 | 418 | ] |
| 362 | 419 | }, |
| ... | ... | @@ -364,14 +421,15 @@ export const asyncRoutes = [ |
| 364 | 421 | { |
| 365 | 422 | path: '/tab', |
| 366 | 423 | component: 'layout/Layout', |
| 367 | - children: [ | |
| 368 | - { | |
| 369 | - path: 'index', | |
| 370 | - component: 'views/tab/index', | |
| 371 | - name: 'Tab', | |
| 372 | - meta: { title: 'tab', icon: 'tab' } | |
| 424 | + children: [{ | |
| 425 | + path: 'index', | |
| 426 | + component: 'views/tab/index', | |
| 427 | + name: 'Tab', | |
| 428 | + meta: { | |
| 429 | + title: 'tab', | |
| 430 | + icon: 'tab' | |
| 373 | 431 | } |
| 374 | - ] | |
| 432 | + }] | |
| 375 | 433 | }, |
| 376 | 434 | |
| 377 | 435 | { |
| ... | ... | @@ -383,24 +441,32 @@ export const asyncRoutes = [ |
| 383 | 441 | title: 'errorPages', |
| 384 | 442 | icon: '404' |
| 385 | 443 | }, |
| 386 | - children: [ | |
| 387 | - { | |
| 444 | + children: [{ | |
| 388 | 445 | path: '401', |
| 389 | 446 | component: 'views/error-page/401', |
| 390 | 447 | name: 'Page401', |
| 391 | - meta: { title: 'page401', noCache: true } | |
| 448 | + meta: { | |
| 449 | + title: 'page401', | |
| 450 | + noCache: true | |
| 451 | + } | |
| 392 | 452 | }, |
| 393 | 453 | { |
| 394 | 454 | path: '404', |
| 395 | 455 | component: 'views/error-page/404', |
| 396 | 456 | name: 'Page404', |
| 397 | - meta: { title: 'page404', noCache: true } | |
| 457 | + meta: { | |
| 458 | + title: 'page404', | |
| 459 | + noCache: true | |
| 460 | + } | |
| 398 | 461 | }, |
| 399 | 462 | { |
| 400 | 463 | path: '500', |
| 401 | 464 | component: 'views/error-page/500', |
| 402 | 465 | name: 'Page500', |
| 403 | - meta: { title: 'page500', noCache: true } | |
| 466 | + meta: { | |
| 467 | + title: 'page500', | |
| 468 | + noCache: true | |
| 469 | + } | |
| 404 | 470 | } |
| 405 | 471 | ] |
| 406 | 472 | }, |
| ... | ... | @@ -409,14 +475,15 @@ export const asyncRoutes = [ |
| 409 | 475 | path: '/error-log', |
| 410 | 476 | component: 'layout/Layout', |
| 411 | 477 | redirect: 'noRedirect', |
| 412 | - children: [ | |
| 413 | - { | |
| 414 | - path: 'log', | |
| 415 | - component: 'views/error-log/index', | |
| 416 | - name: 'ErrorLog', | |
| 417 | - meta: { title: 'errorLog', icon: 'bug' } | |
| 478 | + children: [{ | |
| 479 | + path: 'log', | |
| 480 | + component: 'views/error-log/index', | |
| 481 | + name: 'ErrorLog', | |
| 482 | + meta: { | |
| 483 | + title: 'errorLog', | |
| 484 | + icon: 'bug' | |
| 418 | 485 | } |
| 419 | - ] | |
| 486 | + }] | |
| 420 | 487 | }, |
| 421 | 488 | |
| 422 | 489 | { |
| ... | ... | @@ -428,30 +495,37 @@ export const asyncRoutes = [ |
| 428 | 495 | title: 'excel', |
| 429 | 496 | icon: 'excel' |
| 430 | 497 | }, |
| 431 | - children: [ | |
| 432 | - { | |
| 498 | + children: [{ | |
| 433 | 499 | path: 'export-excel', |
| 434 | 500 | component: 'views/excel/export-excel', |
| 435 | 501 | name: 'ExportExcel', |
| 436 | - meta: { title: 'exportExcel' } | |
| 502 | + meta: { | |
| 503 | + title: 'exportExcel' | |
| 504 | + } | |
| 437 | 505 | }, |
| 438 | 506 | { |
| 439 | 507 | path: 'export-selected-excel', |
| 440 | 508 | component: 'views/excel/select-excel', |
| 441 | 509 | name: 'SelectExcel', |
| 442 | - meta: { title: 'selectExcel' } | |
| 510 | + meta: { | |
| 511 | + title: 'selectExcel' | |
| 512 | + } | |
| 443 | 513 | }, |
| 444 | 514 | { |
| 445 | 515 | path: 'export-merge-header', |
| 446 | 516 | component: 'views/excel/merge-header', |
| 447 | 517 | name: 'MergeHeader', |
| 448 | - meta: { title: 'mergeHeader' } | |
| 518 | + meta: { | |
| 519 | + title: 'mergeHeader' | |
| 520 | + } | |
| 449 | 521 | }, |
| 450 | 522 | { |
| 451 | 523 | path: 'upload-excel', |
| 452 | 524 | component: 'views/excel/upload-excel', |
| 453 | 525 | name: 'UploadExcel', |
| 454 | - meta: { title: 'uploadExcel' } | |
| 526 | + meta: { | |
| 527 | + title: 'uploadExcel' | |
| 528 | + } | |
| 455 | 529 | } |
| 456 | 530 | ] |
| 457 | 531 | }, |
| ... | ... | @@ -461,29 +535,33 @@ export const asyncRoutes = [ |
| 461 | 535 | component: 'layout/Layout', |
| 462 | 536 | redirect: '/zip/download', |
| 463 | 537 | alwaysShow: true, |
| 464 | - meta: { title: 'zip', icon: 'zip' }, | |
| 465 | - children: [ | |
| 466 | - { | |
| 467 | - path: 'download', | |
| 468 | - component: 'views/zip/index', | |
| 469 | - name: 'ExportZip', | |
| 470 | - meta: { title: 'exportZip' } | |
| 538 | + meta: { | |
| 539 | + title: 'zip', | |
| 540 | + icon: 'zip' | |
| 541 | + }, | |
| 542 | + children: [{ | |
| 543 | + path: 'download', | |
| 544 | + component: 'views/zip/index', | |
| 545 | + name: 'ExportZip', | |
| 546 | + meta: { | |
| 547 | + title: 'exportZip' | |
| 471 | 548 | } |
| 472 | - ] | |
| 549 | + }] | |
| 473 | 550 | }, |
| 474 | 551 | |
| 475 | 552 | { |
| 476 | 553 | path: '/pdf', |
| 477 | 554 | component: 'layout/Layout', |
| 478 | 555 | redirect: '/pdf/index', |
| 479 | - children: [ | |
| 480 | - { | |
| 481 | - path: 'index', | |
| 482 | - component: 'views/pdf/index', | |
| 483 | - name: 'PDF', | |
| 484 | - meta: { title: 'pdf', icon: 'pdf' } | |
| 556 | + children: [{ | |
| 557 | + path: 'index', | |
| 558 | + component: 'views/pdf/index', | |
| 559 | + name: 'PDF', | |
| 560 | + meta: { | |
| 561 | + title: 'pdf', | |
| 562 | + icon: 'pdf' | |
| 485 | 563 | } |
| 486 | - ] | |
| 564 | + }] | |
| 487 | 565 | }, |
| 488 | 566 | { |
| 489 | 567 | path: '/pdf/download', |
| ... | ... | @@ -495,53 +573,61 @@ export const asyncRoutes = [ |
| 495 | 573 | path: '/theme', |
| 496 | 574 | component: 'layout/Layout', |
| 497 | 575 | redirect: 'noRedirect', |
| 498 | - children: [ | |
| 499 | - { | |
| 500 | - path: 'index', | |
| 501 | - component: 'views/theme/index', | |
| 502 | - name: 'Theme', | |
| 503 | - meta: { title: 'theme', icon: 'theme' } | |
| 576 | + children: [{ | |
| 577 | + path: 'index', | |
| 578 | + component: 'views/theme/index', | |
| 579 | + name: 'Theme', | |
| 580 | + meta: { | |
| 581 | + title: 'theme', | |
| 582 | + icon: 'theme' | |
| 504 | 583 | } |
| 505 | - ] | |
| 584 | + }] | |
| 506 | 585 | }, |
| 507 | 586 | |
| 508 | 587 | { |
| 509 | 588 | path: '/clipboard', |
| 510 | 589 | component: 'layout/Layout', |
| 511 | 590 | redirect: 'noRedirect', |
| 512 | - children: [ | |
| 513 | - { | |
| 514 | - path: 'index', | |
| 515 | - component: 'views/clipboard/index', | |
| 516 | - name: 'ClipboardDemo', | |
| 517 | - meta: { title: 'clipboardDemo', icon: 'clipboard' } | |
| 591 | + children: [{ | |
| 592 | + path: 'index', | |
| 593 | + component: 'views/clipboard/index', | |
| 594 | + name: 'ClipboardDemo', | |
| 595 | + meta: { | |
| 596 | + title: 'clipboardDemo', | |
| 597 | + icon: 'clipboard' | |
| 518 | 598 | } |
| 519 | - ] | |
| 599 | + }] | |
| 520 | 600 | }, |
| 521 | 601 | |
| 522 | 602 | { |
| 523 | 603 | path: '/i18n', |
| 524 | 604 | component: 'layout/Layout', |
| 525 | - children: [ | |
| 526 | - { | |
| 527 | - path: 'index', | |
| 528 | - component: 'views/i18n-demo/index', | |
| 529 | - name: 'I18n', | |
| 530 | - meta: { title: 'i18n', icon: 'international' } | |
| 605 | + children: [{ | |
| 606 | + path: 'index', | |
| 607 | + component: 'views/i18n-demo/index', | |
| 608 | + name: 'I18n', | |
| 609 | + meta: { | |
| 610 | + title: 'i18n', | |
| 611 | + icon: 'international' | |
| 531 | 612 | } |
| 532 | - ] | |
| 613 | + }] | |
| 533 | 614 | }, |
| 534 | 615 | |
| 535 | 616 | { |
| 536 | 617 | path: 'external-link', |
| 537 | 618 | component: 'layout/Layout', |
| 538 | - children: [ | |
| 539 | - { | |
| 540 | - path: 'https://github.com/PanJiaChen/vue-element-admin', | |
| 541 | - meta: { title: 'externalLink', icon: 'link' } | |
| 619 | + children: [{ | |
| 620 | + path: 'https://github.com/PanJiaChen/vue-element-admin', | |
| 621 | + meta: { | |
| 622 | + title: 'externalLink', | |
| 623 | + icon: 'link' | |
| 542 | 624 | } |
| 543 | - ] | |
| 625 | + }] | |
| 544 | 626 | }, |
| 545 | 627 | |
| 546 | - { path: '*', redirect: '/404', hidden: true } | |
| 628 | + { | |
| 629 | + path: '*', | |
| 630 | + redirect: '/404', | |
| 631 | + hidden: true | |
| 632 | + } | |
| 547 | 633 | ] | ... | ... |
src/api/prod.js
| 1 | 1 | import request from '@/utils/request' |
| 2 | -import { | |
| 3 | - Notification | |
| 4 | -} from 'element-ui' | |
| 5 | 2 | |
| 6 | 3 | // export const getPersonInfo = data => { |
| 7 | 4 | // return service({ |
| ... | ... | @@ -12,18 +9,45 @@ import { |
| 12 | 9 | // } |
| 13 | 10 | |
| 14 | 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 | 12 | return request({ |
| 25 | 13 | url: '/yp/prod/list', |
| 26 | 14 | method: 'post', |
| 27 | 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', | |
| 43 | + data | |
| 44 | + }) | |
| 45 | +} | |
| 46 | + | |
| 47 | +export function updateArticle(data) { | |
| 48 | + return request({ | |
| 49 | + url: '/yp/prod/update', | |
| 50 | + method: 'post', | |
| 51 | + data | |
| 52 | + }) | |
| 53 | +} | ... | ... |
src/store/modules/tagsView.js
| ... | ... | @@ -67,18 +67,27 @@ const mutations = { |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | 69 | const actions = { |
| 70 | - addView({ dispatch }, view) { | |
| 70 | + addView({ | |
| 71 | + dispatch | |
| 72 | + }, view) { | |
| 71 | 73 | dispatch('addVisitedView', view) |
| 72 | 74 | dispatch('addCachedView', view) |
| 73 | 75 | }, |
| 74 | - addVisitedView({ commit }, view) { | |
| 76 | + addVisitedView({ | |
| 77 | + commit | |
| 78 | + }, view) { | |
| 75 | 79 | commit('ADD_VISITED_VIEW', view) |
| 76 | 80 | }, |
| 77 | - addCachedView({ commit }, view) { | |
| 81 | + addCachedView({ | |
| 82 | + commit | |
| 83 | + }, view) { | |
| 78 | 84 | commit('ADD_CACHED_VIEW', view) |
| 79 | 85 | }, |
| 80 | 86 | |
| 81 | - delView({ dispatch, state }, view) { | |
| 87 | + delView({ | |
| 88 | + dispatch, | |
| 89 | + state | |
| 90 | + }, view) { | |
| 82 | 91 | return new Promise(resolve => { |
| 83 | 92 | dispatch('delVisitedView', view) |
| 84 | 93 | dispatch('delCachedView', view) |
| ... | ... | @@ -88,20 +97,29 @@ const actions = { |
| 88 | 97 | }) |
| 89 | 98 | }) |
| 90 | 99 | }, |
| 91 | - delVisitedView({ commit, state }, view) { | |
| 100 | + delVisitedView({ | |
| 101 | + commit, | |
| 102 | + state | |
| 103 | + }, view) { | |
| 92 | 104 | return new Promise(resolve => { |
| 93 | 105 | commit('DEL_VISITED_VIEW', view) |
| 94 | 106 | resolve([...state.visitedViews]) |
| 95 | 107 | }) |
| 96 | 108 | }, |
| 97 | - delCachedView({ commit, state }, view) { | |
| 109 | + delCachedView({ | |
| 110 | + commit, | |
| 111 | + state | |
| 112 | + }, view) { | |
| 98 | 113 | return new Promise(resolve => { |
| 99 | 114 | commit('DEL_CACHED_VIEW', view) |
| 100 | 115 | resolve([...state.cachedViews]) |
| 101 | 116 | }) |
| 102 | 117 | }, |
| 103 | 118 | |
| 104 | - delOthersViews({ dispatch, state }, view) { | |
| 119 | + delOthersViews({ | |
| 120 | + dispatch, | |
| 121 | + state | |
| 122 | + }, view) { | |
| 105 | 123 | return new Promise(resolve => { |
| 106 | 124 | dispatch('delOthersVisitedViews', view) |
| 107 | 125 | dispatch('delOthersCachedViews', view) |
| ... | ... | @@ -111,20 +129,29 @@ const actions = { |
| 111 | 129 | }) |
| 112 | 130 | }) |
| 113 | 131 | }, |
| 114 | - delOthersVisitedViews({ commit, state }, view) { | |
| 132 | + delOthersVisitedViews({ | |
| 133 | + commit, | |
| 134 | + state | |
| 135 | + }, view) { | |
| 115 | 136 | return new Promise(resolve => { |
| 116 | 137 | commit('DEL_OTHERS_VISITED_VIEWS', view) |
| 117 | 138 | resolve([...state.visitedViews]) |
| 118 | 139 | }) |
| 119 | 140 | }, |
| 120 | - delOthersCachedViews({ commit, state }, view) { | |
| 141 | + delOthersCachedViews({ | |
| 142 | + commit, | |
| 143 | + state | |
| 144 | + }, view) { | |
| 121 | 145 | return new Promise(resolve => { |
| 122 | 146 | commit('DEL_OTHERS_CACHED_VIEWS', view) |
| 123 | 147 | resolve([...state.cachedViews]) |
| 124 | 148 | }) |
| 125 | 149 | }, |
| 126 | 150 | |
| 127 | - delAllViews({ dispatch, state }, view) { | |
| 151 | + delAllViews({ | |
| 152 | + dispatch, | |
| 153 | + state | |
| 154 | + }, view) { | |
| 128 | 155 | return new Promise(resolve => { |
| 129 | 156 | dispatch('delAllVisitedViews', view) |
| 130 | 157 | dispatch('delAllCachedViews', view) |
| ... | ... | @@ -134,20 +161,28 @@ const actions = { |
| 134 | 161 | }) |
| 135 | 162 | }) |
| 136 | 163 | }, |
| 137 | - delAllVisitedViews({ commit, state }) { | |
| 164 | + delAllVisitedViews({ | |
| 165 | + commit, | |
| 166 | + state | |
| 167 | + }) { | |
| 138 | 168 | return new Promise(resolve => { |
| 139 | 169 | commit('DEL_ALL_VISITED_VIEWS') |
| 140 | 170 | resolve([...state.visitedViews]) |
| 141 | 171 | }) |
| 142 | 172 | }, |
| 143 | - delAllCachedViews({ commit, state }) { | |
| 173 | + delAllCachedViews({ | |
| 174 | + commit, | |
| 175 | + state | |
| 176 | + }) { | |
| 144 | 177 | return new Promise(resolve => { |
| 145 | 178 | commit('DEL_ALL_CACHED_VIEWS') |
| 146 | 179 | resolve([...state.cachedViews]) |
| 147 | 180 | }) |
| 148 | 181 | }, |
| 149 | 182 | |
| 150 | - updateVisitedView({ commit }, view) { | |
| 183 | + updateVisitedView({ | |
| 184 | + commit | |
| 185 | + }, view) { | |
| 151 | 186 | commit('UPDATE_VISITED_VIEW', view) |
| 152 | 187 | } |
| 153 | 188 | } | ... | ... |
src/views/prod/list.vue
| 1 | 1 | <template> |
| 2 | 2 | <div class="app-container"> |
| 3 | - <!-- Note that row-key is necessary to get a correct row order. --> | |
| 4 | 3 | <el-table |
| 5 | - ref="dragTable" | |
| 6 | 4 | v-loading="listLoading" |
| 7 | 5 | :data="list" |
| 8 | - row-key="id" | |
| 9 | 6 | border |
| 10 | 7 | fit |
| 11 | 8 | highlight-current-row |
| ... | ... | @@ -13,40 +10,31 @@ |
| 13 | 10 | > |
| 14 | 11 | <el-table-column |
| 15 | 12 | align="center" |
| 16 | - label="PID" | |
| 17 | - width="65" | |
| 13 | + label="ID" | |
| 14 | + width="80" | |
| 18 | 15 | > |
| 19 | - <template slot-scope="{row}"> | |
| 20 | - <span>{{ row.id }}</span> | |
| 16 | + <template slot-scope="scope"> | |
| 17 | + <span>{{ scope.row.id }}</span> | |
| 21 | 18 | </template> |
| 22 | 19 | </el-table-column> |
| 23 | 20 | |
| 24 | 21 | <el-table-column |
| 25 | 22 | width="180px" |
| 26 | 23 | align="center" |
| 27 | - label="Date2" | |
| 24 | + label="Date" | |
| 28 | 25 | > |
| 29 | - <template slot-scope="{row}"> | |
| 30 | - <span>{{ row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span> | |
| 26 | + <template slot-scope="scope"> | |
| 27 | + <span>{{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span> | |
| 31 | 28 | </template> |
| 32 | 29 | </el-table-column> |
| 33 | 30 | |
| 34 | 31 | <el-table-column |
| 35 | - min-width="300px" | |
| 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" | |
| 32 | + width="120px" | |
| 45 | 33 | align="center" |
| 46 | 34 | label="Author" |
| 47 | 35 | > |
| 48 | - <template slot-scope="{row}"> | |
| 49 | - <span>{{ row.author }}</span> | |
| 36 | + <template slot-scope="scope"> | |
| 37 | + <span>{{ scope.row.author }}</span> | |
| 50 | 38 | </template> |
| 51 | 39 | </el-table-column> |
| 52 | 40 | |
| ... | ... | @@ -54,27 +42,17 @@ |
| 54 | 42 | width="100px" |
| 55 | 43 | label="Importance" |
| 56 | 44 | > |
| 57 | - <template slot-scope="{row}"> | |
| 45 | + <template slot-scope="scope"> | |
| 58 | 46 | <svg-icon |
| 59 | - v-for="n in + row.importance" | |
| 47 | + v-for="n in +scope.row.importance" | |
| 60 | 48 | :key="n" |
| 61 | 49 | icon-class="star" |
| 62 | - class="icon-star" | |
| 50 | + class="meta-item__icon" | |
| 63 | 51 | /> |
| 64 | 52 | </template> |
| 65 | 53 | </el-table-column> |
| 66 | 54 | |
| 67 | 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 | 56 | class-name="status-col" |
| 79 | 57 | label="Status" |
| 80 | 58 | width="110" |
| ... | ... | @@ -87,43 +65,55 @@ |
| 87 | 65 | </el-table-column> |
| 88 | 66 | |
| 89 | 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 | 82 | align="center" |
| 91 | - label="Drag" | |
| 92 | - width="80" | |
| 83 | + label="Actions" | |
| 84 | + width="120" | |
| 93 | 85 | > |
| 94 | - <template slot-scope="{}"> | |
| 95 | - <svg-icon | |
| 96 | - class="drag-handler" | |
| 97 | - icon-class="drag" | |
| 98 | - /> | |
| 86 | + <template slot-scope="scope"> | |
| 87 | + <router-link :to="'/example/edit/'+scope.row.id"> | |
| 88 | + <el-button | |
| 89 | + type="primary" | |
| 90 | + size="small" | |
| 91 | + icon="el-icon-edit" | |
| 92 | + > | |
| 93 | + Edit | |
| 94 | + </el-button> | |
| 95 | + </router-link> | |
| 99 | 96 | </template> |
| 100 | 97 | </el-table-column> |
| 101 | 98 | </el-table> |
| 102 | - <!-- $t is vue-i18n global function to translate lang (lang in @/lang) --> | |
| 103 | - <div class="show-d"> | |
| 104 | - <el-tag style="margin-right:12px;">{{ $t('table.dragTips1') }} :</el-tag> {{ oldList }} | |
| 105 | - </div> | |
| 106 | - <div class="show-d"> | |
| 107 | - <el-tag>{{ $t('table.dragTips2') }} :</el-tag> {{ newList }} | |
| 108 | - </div> | |
| 99 | + | |
| 100 | + <pagination | |
| 101 | + v-show="total>0" | |
| 102 | + :total="total" | |
| 103 | + :page.sync="listQuery.page" | |
| 104 | + :limit.sync="listQuery.limit" | |
| 105 | + @pagination="getList" | |
| 106 | + /> | |
| 109 | 107 | </div> |
| 110 | 108 | </template> |
| 111 | 109 | |
| 112 | 110 | <script> |
| 113 | -import { | |
| 114 | - fetchList | |
| 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 | |
| 111 | +import { fetchList } from '@/api/article' | |
| 112 | +import Pagination from '@/components/Pagination' // Secondary package based on el-pagination | |
| 124 | 113 | |
| 125 | 114 | export default { |
| 126 | - name: 'DragTable', | |
| 115 | + name: 'ArticleList', | |
| 116 | + components: { Pagination }, | |
| 127 | 117 | filters: { |
| 128 | 118 | statusFilter(status) { |
| 129 | 119 | const statusMap = { |
| ... | ... | @@ -137,78 +127,37 @@ export default { |
| 137 | 127 | data() { |
| 138 | 128 | return { |
| 139 | 129 | list: null, |
| 140 | - total: null, | |
| 130 | + total: 0, | |
| 141 | 131 | listLoading: true, |
| 142 | 132 | listQuery: { |
| 143 | 133 | page: 1, |
| 144 | - limit: 10 | |
| 145 | - }, | |
| 146 | - sortable: null, | |
| 147 | - oldList: [], | |
| 148 | - newList: [] | |
| 134 | + limit: 20 | |
| 135 | + } | |
| 149 | 136 | } |
| 150 | 137 | }, |
| 151 | 138 | created() { |
| 152 | 139 | this.getList() |
| 153 | 140 | }, |
| 154 | 141 | methods: { |
| 155 | - async getList() { | |
| 156 | - console.log('test======>', 'prod ..... -----getList') | |
| 142 | + getList() { | |
| 157 | 143 | this.listLoading = true |
| 158 | - const { data } = await fetchList(this.listQuery) | |
| 159 | - console.log('data===========getList=======', data) | |
| 160 | - this.list = data.items | |
| 161 | - this.total = data.total | |
| 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 | - } | |
| 144 | + fetchList(this.listQuery).then(response => { | |
| 145 | + this.list = response.data.items | |
| 146 | + this.total = response.data.total | |
| 147 | + this.listLoading = false | |
| 188 | 148 | }) |
| 189 | 149 | } |
| 190 | 150 | } |
| 191 | 151 | } |
| 192 | 152 | </script> |
| 193 | 153 | |
| 194 | -<style> | |
| 195 | -.sortable-ghost { | |
| 196 | - opacity: 0.8; | |
| 197 | - color: #fff !important; | |
| 198 | - background: #42b983 !important; | |
| 199 | -} | |
| 200 | -</style> | |
| 201 | - | |
| 202 | 154 | <style scoped> |
| 203 | -.icon-star { | |
| 204 | - margin-right: 2px; | |
| 205 | -} | |
| 206 | -.drag-handler { | |
| 207 | - width: 20px; | |
| 208 | - height: 20px; | |
| 209 | - cursor: pointer; | |
| 155 | +.edit-input { | |
| 156 | + padding-right: 100px; | |
| 210 | 157 | } |
| 211 | -.show-d { | |
| 212 | - margin-top: 15px; | |
| 158 | +.cancel-btn { | |
| 159 | + position: absolute; | |
| 160 | + right: 15px; | |
| 161 | + top: 10px; | |
| 213 | 162 | } |
| 214 | 163 | </style> | ... | ... |