Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
VueElementTemplate
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄瑜
VueElementTemplate
Commits
e65dfd38
Commit
e65dfd38
authored
May 12, 2017
by
Pan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refine code && rm code
parent
cd47007f
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
104 additions
and
935 deletions
+104
-935
index.js
src/router/index.js
+104
-111
createUser.vue
src/views/admin/createUser.vue
+0
-87
profile.vue
src/views/admin/profile.vue
+0
-404
quicklycreate.vue
src/views/admin/quicklycreate.vue
+0
-92
usersList.vue
src/views/admin/usersList.vue
+0
-241
form2.vue
src/views/example/form2.vue
+0
-0
No files found.
src/router/index.js
View file @
e65dfd38
...
@@ -56,7 +56,6 @@ const Table = resolve => require(['../views/example/table'], resolve);
...
@@ -56,7 +56,6 @@ const Table = resolve => require(['../views/example/table'], resolve);
const
DragTable
=
resolve
=>
require
([
'../views/example/dragTable'
],
resolve
);
const
DragTable
=
resolve
=>
require
([
'../views/example/dragTable'
],
resolve
);
const
InlineEditTable
=
resolve
=>
require
([
'../views/example/inlineEditTable'
],
resolve
);
const
InlineEditTable
=
resolve
=>
require
([
'../views/example/inlineEditTable'
],
resolve
);
const
Form1
=
resolve
=>
require
([
'../views/example/form1'
],
resolve
);
const
Form1
=
resolve
=>
require
([
'../views/example/form1'
],
resolve
);
// const Form2 = resolve => require(['../views/example/form2'], resolve);
/* permission */
/* permission */
const
Permission
=
resolve
=>
require
([
'../views/permission/index'
],
resolve
);
const
Permission
=
resolve
=>
require
([
'../views/permission/index'
],
resolve
);
...
@@ -64,49 +63,56 @@ const Permission = resolve => require(['../views/permission/index'], resolve);
...
@@ -64,49 +63,56 @@ const Permission = resolve => require(['../views/permission/index'], resolve);
Vue
.
use
(
Router
);
Vue
.
use
(
Router
);
/**
* icon :the icon show in the sidebar
* hidden: if hiddenLtrue will not show in the sidebar
* redirect :if redirect:noredirect will not redirct in the levelbar
* noDropdown : if noDropdown:true will not has submenu
* meta: { role: ['admin'] } will control the page role
*/
export
default
new
Router
({
export
default
new
Router
({
// mode: 'history', //后端支持可开
// mode: 'history', //后端支持可开
scrollBehavior
:
()
=>
({
y
:
0
}),
scrollBehavior
:
()
=>
({
y
:
0
}),
routes
:
[
routes
:
[
{
path
:
'/login'
,
component
:
Login
,
hidden
:
true
},
{
path
:
'/login'
,
component
:
Login
,
hidden
:
true
},
{
path
:
'/authredirect'
,
component
:
authRedirect
,
hidden
:
true
},
{
path
:
'/authredirect'
,
component
:
authRedirect
,
hidden
:
true
},
{
path
:
'/sendpwd'
,
component
:
sendPWD
,
hidden
:
true
},
{
path
:
'/sendpwd'
,
component
:
sendPWD
,
hidden
:
true
},
{
path
:
'/reset'
,
component
:
reset
,
hidden
:
true
},
{
path
:
'/reset'
,
component
:
reset
,
hidden
:
true
},
{
path
:
'/404'
,
component
:
Err404
,
hidden
:
true
},
{
path
:
'/404'
,
component
:
Err404
,
hidden
:
true
},
{
path
:
'/401'
,
component
:
Err401
,
hidden
:
true
},
{
{
path
:
'/401'
,
component
:
Err401
,
hidden
:
true
},
path
:
'/'
,
{
component
:
Layout
,
path
:
'/'
,
redirect
:
'/dashboard'
,
component
:
Layout
,
name
:
'首页
'
,
redirect
:
'/dashboard
'
,
hidden
:
true
,
name
:
'首页'
,
children
:
[{
path
:
'dashboard'
,
component
:
dashboard
}]
hidden
:
true
,
},
{
children
:
[{
path
:
'dashboard'
,
component
:
dashboard
}]
path
:
'/introduction'
,
}
,
component
:
Layout
,
{
redirect
:
'/introduction/index
'
,
path
:
'/introduction
'
,
icon
:
'xinrenzhinan'
,
component
:
Layout
,
noDropdown
:
true
,
redirect
:
'/introduction/index'
,
children
:
[
icon
:
'xinrenzhinan'
,
{
path
:
'index'
,
component
:
Introduction
,
name
:
'简述'
}
noDropdown
:
true
,
]
children
:
[{
path
:
'index'
,
component
:
Introduction
,
name
:
'简述'
}
]
},
{
},
path
:
'/permission'
,
{
component
:
Layout
,
path
:
'/permission'
,
redirect
:
'/permission/index'
,
component
:
Layout
,
name
:
'权限测试
'
,
redirect
:
'/permission/index
'
,
icon
:
'quanxian
'
,
name
:
'权限测试
'
,
meta
:
{
role
:
[
'admin'
]
}
,
icon
:
'quanxian'
,
noDropdown
:
true
,
meta
:
{
role
:
[
'admin'
]
}
,
children
:
[
noDropdown
:
true
,
{
path
:
'index'
,
component
:
Permission
,
name
:
'权限测试页'
,
meta
:
{
role
:
[
'admin'
]
}
}
children
:
[{
path
:
'index'
,
component
:
Permission
,
name
:
'权限测试页'
,
meta
:
{
role
:
[
'admin'
]
}
}]
]
},
},
{
{
path
:
'/components'
,
path
:
'/components'
,
component
:
Layout
,
component
:
Layout
,
redirect
:
'/components/index'
,
redirect
:
'/components/index'
,
name
:
'组件'
,
name
:
'组件'
,
icon
:
'zujian'
,
icon
:
'zujian'
,
children
:
[
children
:
[
{
path
:
'index'
,
component
:
componentsIndex
,
name
:
'介绍 '
},
{
path
:
'index'
,
component
:
componentsIndex
,
name
:
'介绍 '
},
{
path
:
'tinymce'
,
component
:
Tinymce
,
name
:
'富文本编辑器'
},
{
path
:
'tinymce'
,
component
:
Tinymce
,
name
:
'富文本编辑器'
},
{
path
:
'markdown'
,
component
:
Markdown
,
name
:
'Markdown'
},
{
path
:
'markdown'
,
component
:
Markdown
,
name
:
'Markdown'
},
...
@@ -118,88 +124,75 @@ export default new Router({
...
@@ -118,88 +124,75 @@ export default new Router({
{
path
:
'sticky'
,
component
:
Sticky
,
name
:
'Sticky'
},
{
path
:
'sticky'
,
component
:
Sticky
,
name
:
'Sticky'
},
{
path
:
'countto'
,
component
:
CountTo
,
name
:
'CountTo'
},
{
path
:
'countto'
,
component
:
CountTo
,
name
:
'CountTo'
},
{
path
:
'mixin'
,
component
:
Mixin
,
name
:
'小组件'
}
{
path
:
'mixin'
,
component
:
Mixin
,
name
:
'小组件'
}
]
]
},
{
},
path
:
'/charts'
,
{
component
:
Layout
,
path
:
'/charts'
,
redirect
:
'/charts/index'
,
component
:
Layout
,
name
:
'图表'
,
redirect
:
'/charts/index'
,
icon
:
'tubiaoleixingzhengchang'
,
name
:
'图表'
,
children
:
[
icon
:
'tubiaoleixingzhengchang'
,
children
:
[
{
path
:
'index'
,
component
:
chartIndex
,
name
:
'介绍'
},
{
path
:
'index'
,
component
:
chartIndex
,
name
:
'介绍'
},
{
path
:
'keyboard'
,
component
:
KeyboardChart
,
name
:
'键盘图表'
},
{
path
:
'keyboard'
,
component
:
KeyboardChart
,
name
:
'键盘图表'
},
{
path
:
'keyboard2'
,
component
:
KeyboardChart2
,
name
:
'键盘图表2'
},
{
path
:
'keyboard2'
,
component
:
KeyboardChart2
,
name
:
'键盘图表2'
},
{
path
:
'line'
,
component
:
LineMarker
,
name
:
'折线图'
},
{
path
:
'line'
,
component
:
LineMarker
,
name
:
'折线图'
},
{
path
:
'mixchart'
,
component
:
MixChart
,
name
:
'混合图表'
}
{
path
:
'mixchart'
,
component
:
MixChart
,
name
:
'混合图表'
}
]
]
},
{
},
path
:
'/errorpage'
,
{
component
:
Layout
,
path
:
'/errorpage'
,
redirect
:
'noredirect'
,
component
:
Layout
,
name
:
'错误页面'
,
redirect
:
'noredirect'
,
icon
:
'404'
,
name
:
'错误页面'
,
children
:
[
icon
:
'404'
,
children
:
[
{
path
:
'401'
,
component
:
Err401
,
name
:
'401'
},
{
path
:
'401'
,
component
:
Err401
,
name
:
'401'
},
{
path
:
'404'
,
component
:
Err404
,
name
:
'404'
}
{
path
:
'404'
,
component
:
Err404
,
name
:
'404'
}
]
]
},
{
},
path
:
'/errlog'
,
{
component
:
Layout
,
path
:
'/errlog'
,
redirect
:
'noredirect'
,
component
:
Layout
,
name
:
'errlog'
,
redirect
:
'noredirect'
,
icon
:
'bug'
,
name
:
'errlog'
,
noDropdown
:
true
,
icon
:
'bug'
,
children
:
[
noDropdown
:
true
,
{
path
:
'log'
,
component
:
ErrorLog
,
name
:
'错误日志'
}
children
:
[{
path
:
'log'
,
component
:
ErrorLog
,
name
:
'错误日志'
}]
]
},
},
{
{
path
:
'/excel'
,
path
:
'/excel'
,
component
:
Layout
,
component
:
Layout
,
redirect
:
'noredirect'
,
redirect
:
'noredirect'
,
name
:
'excel'
,
name
:
'excel'
,
icon
:
'EXCEL'
,
icon
:
'EXCEL'
,
noDropdown
:
true
,
noDropdown
:
true
,
children
:
[
children
:
[{
path
:
'download'
,
component
:
ExcelDownload
,
name
:
'导出excel'
}]
{
path
:
'download'
,
component
:
ExcelDownload
,
name
:
'导出excel'
}
},
]
{
},
{
path
:
'/theme'
,
path
:
'/theme'
,
component
:
Layout
,
component
:
Layout
,
redirect
:
'noredirect'
,
redirect
:
'noredirect'
,
name
:
'theme'
,
name
:
'theme'
,
icon
:
'theme'
,
icon
:
'theme'
,
noDropdown
:
true
,
noDropdown
:
true
,
children
:
[{
path
:
'index'
,
component
:
Theme
,
name
:
'换肤'
}]
children
:
[
},
{
path
:
'index'
,
component
:
Theme
,
name
:
'换肤'
}
{
]
path
:
'/example'
,
},
{
component
:
Layout
,
path
:
'/example'
,
redirect
:
'noredirect'
,
component
:
Layout
,
name
:
'综合实例'
,
redirect
:
'noredirect'
,
icon
:
'zonghe'
,
name
:
'综合实例'
,
children
:
[
icon
:
'zonghe'
,
children
:
[
{
path
:
'dynamictable'
,
component
:
DynamicTable
,
name
:
'动态table'
},
{
path
:
'dynamictable'
,
component
:
DynamicTable
,
name
:
'动态table'
},
{
path
:
'dragtable'
,
component
:
DragTable
,
name
:
'拖拽table'
},
{
path
:
'dragtable'
,
component
:
DragTable
,
name
:
'拖拽table'
},
{
path
:
'inline_edit_table'
,
component
:
InlineEditTable
,
name
:
'table内编辑'
},
{
path
:
'inline_edit_table'
,
component
:
InlineEditTable
,
name
:
'table内编辑'
},
{
path
:
'table'
,
component
:
Table
,
name
:
'综合table'
},
{
path
:
'table'
,
component
:
Table
,
name
:
'综合table'
},
{
path
:
'form1'
,
component
:
Form1
,
name
:
'综合form1'
}
{
path
:
'form1'
,
component
:
Form1
,
name
:
'综合form1'
}
// { path: 'form2', component: Form2, name: '综合form2' }
]
]
},
},
// {
{
path
:
'*'
,
redirect
:
'/404'
,
hidden
:
true
}
// path: '/admin',
// component: Layout,
// redirect: 'noredirect',
// name: '后台管理',
// icon: 'geren1',
// children: [
// { path: 'createuser', component: AdminCreateUser, name: '管理员', meta: { role: ['admin'] } },
// { path: 'list', component: UsersList, name: '后台用户列表', meta: { role: ['super_editor', 'product', 'author_assistant'] } },
// { path: 'qicklyCreate', component: QuicklyCreateUser, name: '一键创建账户', meta: { role: ['super_editor', 'gold_editor', 'weex_editor', 'wscn_editor', 'author_assistant', 'product'] } },
// { path: 'profile', component: UserProfile, name: '个人' }
// ]
// },
{
path
:
'*'
,
redirect
:
'/404'
,
hidden
:
true
}
]
]
});
});
src/views/admin/createUser.vue
deleted
100644 → 0
View file @
cd47007f
<
template
>
<div
class=
"app-container"
>
<h1
class=
"page-heading"
>
创建后台用户
</h1>
<el-form
ref=
"createForm"
:rules=
"createRules"
label-position=
"left"
style=
'width:80%'
:model=
"form"
label-width=
"100px"
>
<el-form-item
label=
"用户邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
placeholder=
"公司邮箱"
></el-input>
</el-form-item>
<el-form-item
label=
"权限选择"
>
<el-select
style=
"width: 100%"
v-model=
"form.role"
multiple
placeholder=
"请选择"
>
<el-option
v-for=
"item in roleList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
:loading=
"loading"
@
click
.
native
.
prevent=
"onSubmit"
>
立即创建
</el-button>
<el-button>
<router-link
class=
"normal_link"
to=
"/index"
>
取消
</router-link>
</el-button>
</el-form-item>
</el-form>
</div>
</
template
>
<
script
>
import
{
createNewUser
,
getRoleList
}
from
'api/adminUser'
;
import
{
isWscnEmail
}
from
'utils/validate'
;
export
default
{
name
:
'createUser'
,
data
()
{
const
validateEmail
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
isWscnEmail
(
value
))
{
callback
(
new
Error
(
'邮箱错误'
));
}
else
{
callback
();
}
};
return
{
roleList
:
[],
loading
:
false
,
form
:
{
email
:
''
,
role
:
''
},
createRules
:
{
email
:
[
{
required
:
true
,
message
:
'请输入邮箱'
,
trigger
:
'blur'
},
{
validator
:
validateEmail
}
]
}
};
},
methods
:
{
onSubmit
()
{
this
.
$refs
.
createForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
const
data
=
{
email
:
this
.
form
.
email
,
roles
:
this
.
form
.
role
};
createNewUser
(
data
).
then
(()
=>
{
this
.
$message
.
success
(
'创建成功'
);
});
}
else
{
this
.
$message
.
error
(
'error submit!!'
);
}
this
.
loading
=
false
;
});
}
},
created
()
{
getRoleList
().
then
(
response
=>
{
const
roleMap
=
response
.
data
.
role_map
;
const
keyArr
=
Object
.
keys
(
roleMap
);
this
.
roleList
=
keyArr
.
map
(
v
=>
({
value
:
v
,
label
:
roleMap
[
v
]
}));
});
}
};
</
script
>
src/views/admin/profile.vue
deleted
100644 → 0
View file @
cd47007f
This diff is collapsed.
Click to expand it.
src/views/admin/quicklycreate.vue
deleted
100644 → 0
View file @
cd47007f
<
template
>
<div
class=
"app-container quicklyCreateUser-container"
>
<el-form
ref=
"form"
:rules=
"rules"
:model=
"form"
label-position=
"left"
label-width=
"60px"
>
<el-card
style=
" margin-top: 50px;width: 600px;"
>
<div
slot=
"header"
class=
"clearfix"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"20"
>
<el-form-item
label=
"昵称"
prop=
"display_name"
>
<el-input
v-model=
"form.display_name"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-button
type=
"success"
@
click=
"onSubmit"
>
立即创建
</el-button>
</el-col>
</el-row>
</div>
<el-row>
<el-col
:span=
"12"
>
<el-button
style=
"height: 150px;width: 150px;"
@
click=
"handleImagecropper"
type=
"primary"
>
上传头像
</el-button>
</el-col>
<el-col
:span=
"12"
>
<img
style=
" float:right;width: 150px;height: 150px;border-radius: 50%;margin-left: 50px;"
:src=
"form.image"
>
</el-col>
</el-row>
</el-card>
</el-form>
<el-tooltip
style=
"position: absolute;margin-left: 750px;top: 380px"
placement=
"top"
>
<el-button>
Tooltip
</el-button>
<div
slot=
"content"
>
昵称为必填项
<br/><br/>
一键创建只能创建后台虚拟账号
<br/><br/>
没有任何实际操作能力
</div>
</el-tooltip>
<ImageCropper
field=
"img"
:width=
"300"
:height=
"300"
url=
"/upload"
@
crop-upload-success=
"cropSuccess"
:key=
"imagecropperKey"
v-show=
"imagecropperShow"
>
</ImageCropper>
</div>
</
template
>
<
script
>
import
{
createNewUser
}
from
'api/adminUser'
;
import
ImageCropper
from
'components/ImageCropper'
;
export
default
{
name
:
'quicklyCreateUser'
,
components
:
{
ImageCropper
},
data
()
{
return
{
form
:
{
display_name
:
''
,
image
:
''
,
role
:
[
'virtual_editor'
]
},
imagecropperShow
:
false
,
imagecropperKey
:
0
,
rules
:
{
display_name
:
[{
required
:
true
,
message
:
'昵称必填'
,
trigger
:
'blur'
}]
}
}
},
methods
:
{
onSubmit
()
{
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
createNewUser
(
this
.
form
).
then
(()
=>
{
this
.
$message
.
success
(
'创建成功'
)
});
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
handleImagecropper
()
{
this
.
imagecropperShow
=
true
;
this
.
imagecropperKey
=
this
.
imagecropperKey
+
1
;
},
cropSuccess
(
url
)
{
this
.
imagecropperShow
=
false
;
this
.
form
.
image
=
url
}
}
}
</
script
>
src/views/admin/usersList.vue
deleted
100644 → 0
View file @
cd47007f
<
template
>
<div
class=
"app-container adminUsers-list-container"
>
<div
class=
"filter-container"
>
<el-input
@
keyup
.
enter
.
native=
"handleFilter"
style=
"width:135px;"
class=
"filter-item"
placeholder=
"ID"
type=
"number"
v-model=
"listQuery.uid"
>
</el-input>
<el-input
style=
"width:135px;"
class=
"filter-item"
placeholder=
"Name"
@
keyup
.
enter
.
native=
"handleFilter"
v-model=
"listQuery.display_name"
>
</el-input>
<el-input
class=
"filter-item"
style=
"width:300px;display: inline-table"
placeholder=
"email"
@
keyup
.
enter
.
native=
"handleFilter"
v-model=
"listQuery.email"
>
<template
slot=
"append"
>
@wallstreetcn.com
</
template
>
</el-input>
</el-input>
<el-select
style=
"width: 250px"
class=
"filter-item"
v-model=
"listQuery.role"
clearable
placeholder=
"权限"
>
<el-option
v-for=
"item in roleOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-button
class=
"filter-item"
type=
"primary"
icon=
"search"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
type=
"danger"
@
click=
"resetFilter"
>
重置筛选项
</el-button>
</div>
<el-table
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
>
<el-table-column
label=
"ID"
width=
"130"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
uid
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"Name"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
display_name
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"Email"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
email
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"Role"
>
<
template
scope=
"scope"
>
<el-tag
style=
"margin-right: 5px;"
v-for=
'item in scope.row.roles'
:key=
'item+scope.row.uid'
type=
"primary"
>
{{
item
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"170"
>
<
template
scope=
"scope"
>
<el-button
size=
"small"
type=
"success"
@
click=
"handleEdit(scope.row)"
>
编辑权限
</el-button>
<el-button
size=
"small"
v-if=
'scope.row.roles.indexOf("virtual_editor")>=0||hasRoleEdit'
type=
"primary"
@
click=
"handleInfo(scope.row)"
>
修改
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
>
</el-pagination>
</div>
<el-dialog
title=
"编辑"
v-model=
"dialogFormVisible"
size=
'small'
>
<el-form
:model=
"tempForm"
label-position=
"left"
label-width=
"70px"
>
<el-form-item
label=
"权限"
>
<el-select
style=
"width: 100%"
v-model=
"tempForm.roles"
multiple
placeholder=
"请选择"
>
<el-option
v-for=
"item in roleOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"updateUser"
>
确 定
</el-button>
</div>
</el-dialog>
<el-dialog
title=
"编辑简介"
v-model=
"dialogInfoVisible"
>
<el-form
:model=
"infoForm"
>
<el-form-item
label=
"昵称"
>
<el-input
v-model=
"infoForm.display_name"
></el-input>
</el-form-item>
<el-form-item
label=
"简介"
>
<el-input
type=
"textarea"
:autosize=
"{ minRows: 2}"
v-model=
"infoForm.introduction"
></el-input>
</el-form-item>
<el-form-item
label=
"头像"
>
</el-form-item>
<div
style=
'width:200px;height:200px;'
>
<singleImageUpload2
v-model=
"infoForm.image"
></singleImageUpload2>
</div>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogInfoVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitInfo"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
mapGetters
}
from
'vuex'
;
import
{
getRoleList
,
updateInfo
}
from
'api/adminUser'
;
import
{
getUserList
}
from
'api/remoteSearch'
;
import
{
objectMerge
}
from
'utils'
;
import
singleImageUpload2
from
'components/Upload/singleImage2'
;
export
default
{
name
:
'adminUsersList'
,
components
:
{
singleImageUpload2
},
data
()
{
return
{
list
:
null
,
total
:
null
,
listLoading
:
true
,
listQuery
:
{
page
:
1
,
limit
:
20
,
role
:
''
,
uid
:
undefined
,
display_name
:
''
},
roleOptions
:
[],
dialogFormVisible
:
false
,
tempForm
:
{
uid
:
null
,
roles
:
[]
},
dialogInfoVisible
:
false
,
infoForm
:
{
uid
:
null
,
image
:
''
,
display_name
:
''
,
introduction
:
''
}
}
},
computed
:
{
...
mapGetters
([
'roles'
]),
hasRoleEdit
()
{
if
(
this
.
roles
.
indexOf
(
'admin'
)
>=
0
)
{
return
true
;
}
else
{
return
false
;
}
}
},
created
()
{
this
.
getList
();
this
.
getAdminRoleList
();
},
methods
:
{
getList
()
{
getUserList
(
this
.
listQuery
).
then
(
response
=>
{
const
data
=
response
.
data
;
this
.
list
=
data
.
items
;
this
.
total
=
data
.
count
;
this
.
listLoading
=
false
;
})
},
resetFilter
()
{
this
.
listQuery
=
{
page
:
1
,
limit
:
20
,
role
:
''
,
uid
:
undefined
,
display_name
:
''
}
this
.
getList
();
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
},
handleFilter
()
{
this
.
getList
();
},
getAdminRoleList
()
{
getRoleList
().
then
(
response
=>
{
const
roleMap
=
response
.
data
.
role_map
;
const
keyArr
=
Object
.
keys
(
roleMap
);
this
.
roleOptions
=
keyArr
.
map
(
v
=>
({
value
:
v
,
label
:
roleMap
[
v
]
}));
})
},
handleEdit
(
row
)
{
this
.
dialogFormVisible
=
true
;
objectMerge
(
this
.
tempForm
,
row
);
},
updateUser
()
{
updateInfo
(
this
.
tempForm
).
then
(()
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
'修改成功'
,
type
:
'success'
});
for
(
const
item
of
this
.
list
)
{
if
(
item
.
uid
===
this
.
tempForm
.
uid
)
{
const
index
=
this
.
list
.
indexOf
(
item
);
this
.
list
[
index
]
=
objectMerge
(
this
.
list
[
index
],
this
.
tempForm
);
break
}
}
this
.
dialogFormVisible
=
false
;
});
},
handleInfo
(
row
)
{
this
.
dialogInfoVisible
=
true
;
objectMerge
(
this
.
infoForm
,
row
);
},
submitInfo
()
{
updateInfo
(
this
.
infoForm
).
then
(()
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
'修改成功'
,
type
:
'success'
});
for
(
const
item
of
this
.
list
)
{
if
(
item
.
uid
===
this
.
infoForm
.
uid
)
{
const
index
=
this
.
list
.
indexOf
(
item
);
this
.
list
[
index
]
=
objectMerge
(
this
.
list
[
index
],
this
.
infoForm
);
break
}
}
this
.
dialogInfoVisible
=
false
;
});
}
}
}
</
script
>
src/views/example/form2.vue
deleted
100644 → 0
View file @
cd47007f
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment