Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
peizhen-vue
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PeiZhen-Java
peizhen-vue
Commits
1ae1da87
Commit
1ae1da87
authored
Sep 07, 2023
by
‘巴博尔’
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改原用户管理
parent
3823cef7
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
278 additions
and
98 deletions
+278
-98
src/views/system/user/index.vue
+278
-98
No files found.
src/views/system/user/index.vue
View file @
1ae1da87
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-row
:gutter=
"20"
>
<el-row
:gutter=
"20"
>
<!--部门数据-->
<!--部门数据-->
<el-col
:span=
"4"
:xs=
"24"
>
<
!--
<
el-col
:span=
"4"
:xs=
"24"
>
<div
class=
"head-container"
>
<div
class=
"head-container"
>
<el-input
<el-input
v-model=
"deptName"
v-model=
"deptName"
...
@@ -26,10 +26,17 @@
...
@@ -26,10 +26,17 @@
@
node-click=
"handleNodeClick"
@
node-click=
"handleNodeClick"
/>
/>
</div>
</div>
</el-col>
</el-col>
-->
<!--用户数据-->
<!--用户数据-->
<el-col
:span=
"20"
:xs=
"24"
>
<el-col
:span=
"24"
:xs=
"24"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"用户名称"
prop=
"userName"
>
<el-form-item
label=
"用户名称"
prop=
"userName"
>
<el-input
<el-input
v-model=
"queryParams.userName"
v-model=
"queryParams.userName"
...
@@ -39,7 +46,7 @@
...
@@ -39,7 +46,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
@
keyup
.
enter
.
native=
"handleQuery"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"手机号码"
prop=
"phonenumber"
>
<
!--
<
el-form-item
label=
"手机号码"
prop=
"phonenumber"
>
<el-input
<el-input
v-model=
"queryParams.phonenumber"
v-model=
"queryParams.phonenumber"
placeholder=
"请输入手机号码"
placeholder=
"请输入手机号码"
...
@@ -47,8 +54,8 @@
...
@@ -47,8 +54,8 @@
style=
"width: 240px"
style=
"width: 240px"
@
keyup
.
enter
.
native=
"handleQuery"
@
keyup
.
enter
.
native=
"handleQuery"
/>
/>
</el-form-item>
</el-form-item>
-->
<el-form-item
label=
"状态"
prop=
"status"
>
<
!--
<
el-form-item
label=
"状态"
prop=
"status"
>
<el-select
<el-select
v-model=
"queryParams.status"
v-model=
"queryParams.status"
placeholder=
"用户状态"
placeholder=
"用户状态"
...
@@ -62,8 +69,8 @@
...
@@ -62,8 +69,8 @@
:value=
"dict.value"
:value=
"dict.value"
/>
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
-->
<el-form-item
label=
"创建时间"
>
<
!--
<
el-form-item
label=
"创建时间"
>
<el-date-picker
<el-date-picker
v-model=
"dateRange"
v-model=
"dateRange"
style=
"width: 240px"
style=
"width: 240px"
...
@@ -74,10 +81,18 @@
...
@@ -74,10 +81,18 @@
end-placeholder=
"结束日期"
end-placeholder=
"结束日期"
:default-time=
"['00:00:00', '23:59:59']"
:default-time=
"['00:00:00', '23:59:59']"
></el-date-picker>
></el-date-picker>
</el-form-item>
</el-form-item>
-->
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button
>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -92,7 +107,7 @@
...
@@ -92,7 +107,7 @@
v-hasPermi=
"['system:user:add']"
v-hasPermi=
"['system:user:add']"
>
新增
</el-button>
>
新增
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<
!--
<
el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"success"
type=
"success"
plain
plain
...
@@ -133,18 +148,49 @@
...
@@ -133,18 +148,49 @@
@
click=
"handleExport"
@
click=
"handleExport"
v-hasPermi=
"['system:user:export']"
v-hasPermi=
"['system:user:export']"
>
导出
</el-button>
>
导出
</el-button>
</el-col>
</el-col>
-->
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
:columns=
"columns"
></right-toolbar>
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
:columns=
"columns"
></right-toolbar>
</el-row>
</el-row>
<el-table
v-loading=
"loading"
:data=
"userList"
@
selection-change=
"handleSelectionChange"
>
<el-table
v-loading=
"loading"
:data=
"userList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"50"
align=
"center"
/>
<el-table-column
type=
"selection"
width=
"50"
align=
"center"
/>
<el-table-column
label=
"用户编号"
align=
"center"
key=
"userId"
prop=
"userId"
v-if=
"columns[0].visible"
/>
<el-table-column
<el-table-column
label=
"用户名称"
align=
"center"
key=
"userName"
prop=
"userName"
v-if=
"columns[1].visible"
:show-overflow-tooltip=
"true"
/>
label=
"ID"
<el-table-column
label=
"用户昵称"
align=
"center"
key=
"nickName"
prop=
"nickName"
v-if=
"columns[2].visible"
:show-overflow-tooltip=
"true"
/>
align=
"center"
<el-table-column
label=
"部门"
align=
"center"
key=
"deptName"
prop=
"dept.deptName"
v-if=
"columns[3].visible"
:show-overflow-tooltip=
"true"
/>
key=
"userId"
<el-table-column
label=
"手机号码"
align=
"center"
key=
"phonenumber"
prop=
"phonenumber"
v-if=
"columns[4].visible"
width=
"120"
/>
prop=
"userId"
<el-table-column
label=
"状态"
align=
"center"
key=
"status"
v-if=
"columns[5].visible"
>
/>
<el-table-column
label=
"用户名"
align=
"center"
key=
"userName"
prop=
"userName"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"姓名"
align=
"center"
key=
"nickName"
prop=
"nickName"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"角色"
align=
"center"
key=
"deptName"
prop=
"dept.deptName"
:show-overflow-tooltip=
"true"
/>
<!--
<el-table-column
label=
"手机号码"
align=
"center"
key=
"phonenumber"
prop=
"phonenumber"
v-if=
"columns[4].visible"
width=
"120"
/>
-->
<!--
<el-table-column
label=
"状态"
align=
"center"
key=
"status"
v-if=
"columns[5].visible"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<el-switch
<el-switch
v-model=
"scope.row.status"
v-model=
"scope.row.status"
...
@@ -153,8 +199,23 @@
...
@@ -153,8 +199,23 @@
@
change=
"handleStatusChange(scope.row)"
@
change=
"handleStatusChange(scope.row)"
></el-switch>
></el-switch>
</
template
>
</
template
>
</el-table-column>
-->
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
v-if=
"columns[6].visible"
width=
"160"
>
<el-table-column
label=
"更新时间"
align=
"center"
prop=
"createTime"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</
template
>
...
@@ -172,29 +233,45 @@
...
@@ -172,29 +233,45 @@
icon=
"el-icon-edit"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['system:user:edit']"
v-hasPermi=
"['system:user:edit']"
>
修改
</el-button>
>
修改
</el-button
>
<el-button
<el-button
size=
"mini"
size=
"mini"
type=
"text"
type=
"text"
icon=
"el-icon-delete"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['system:user:remove']"
v-hasPermi=
"['system:user:remove']"
>
删除
</el-button>
>
删除
</el-button
<el-dropdown
size=
"mini"
@
command=
"(command) => handleCommand(command, scope.row)"
v-hasPermi=
"['system:user:resetPwd', 'system:user:edit']"
>
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-d-arrow-right"
>
更多
</el-button>
<!--
<el-dropdown
size=
"mini"
@
command=
"(command) => handleCommand(command, scope.row)"
v-hasPermi=
"['system:user:resetPwd', 'system:user:edit']"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-d-arrow-right"
>
更多
</el-button
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"handleResetPwd"
icon=
"el-icon-key"
<el-dropdown-item
v-hasPermi=
"['system:user:resetPwd']"
>
重置密码
</el-dropdown-item>
command=
"handleResetPwd"
<el-dropdown-item
command=
"handleAuthRole"
icon=
"el-icon-circle-check"
icon=
"el-icon-key"
v-hasPermi=
"['system:user:edit']"
>
分配角色
</el-dropdown-item>
v-hasPermi=
"['system:user:resetPwd']"
>
重置密码
</el-dropdown-item
>
<el-dropdown-item
command=
"handleAuthRole"
icon=
"el-icon-circle-check"
v-hasPermi=
"['system:user:edit']"
>
分配角色
</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<pagination
<pagination
v-show=
"total
>
0"
v-show=
"total
>
0"
:total=
"total"
:total=
"total"
:page
.
sync=
"queryParams.pageNum"
:page
.
sync=
"queryParams.pageNum"
:limit
.
sync=
"queryParams.pageSize"
:limit
.
sync=
"queryParams.pageSize"
...
@@ -209,36 +286,71 @@
...
@@ -209,36 +286,71 @@
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"用户昵称"
prop=
"nickName"
>
<el-form-item
label=
"用户昵称"
prop=
"nickName"
>
<el-input
v-model=
"form.nickName"
placeholder=
"请输入用户昵称"
maxlength=
"30"
/>
<el-input
v-model=
"form.nickName"
placeholder=
"请输入用户昵称"
maxlength=
"30"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"归属部门"
prop=
"deptId"
>
<el-form-item
label=
"归属部门"
prop=
"deptId"
>
<treeselect
v-model=
"form.deptId"
:options=
"deptOptions"
:show-count=
"true"
placeholder=
"请选择归属部门"
/>
<treeselect
v-model=
"form.deptId"
:options=
"deptOptions"
:show-count=
"true"
placeholder=
"请选择归属部门"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"手机号码"
prop=
"phonenumber"
>
<el-form-item
label=
"手机号码"
prop=
"phonenumber"
>
<el-input
v-model=
"form.phonenumber"
placeholder=
"请输入手机号码"
maxlength=
"11"
/>
<el-input
v-model=
"form.phonenumber"
placeholder=
"请输入手机号码"
maxlength=
"11"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"邮箱"
prop=
"email"
>
<el-form-item
label=
"邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
placeholder=
"请输入邮箱"
maxlength=
"50"
/>
<el-input
v-model=
"form.email"
placeholder=
"请输入邮箱"
maxlength=
"50"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.userId == undefined"
label=
"用户名称"
prop=
"userName"
>
<el-form-item
<el-input
v-model=
"form.userName"
placeholder=
"请输入用户名称"
maxlength=
"30"
/>
v-if=
"form.userId == undefined"
label=
"用户名称"
prop=
"userName"
>
<el-input
v-model=
"form.userName"
placeholder=
"请输入用户名称"
maxlength=
"30"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.userId == undefined"
label=
"用户密码"
prop=
"password"
>
<el-form-item
<el-input
v-model=
"form.password"
placeholder=
"请输入用户密码"
type=
"password"
maxlength=
"20"
show-password
/>
v-if=
"form.userId == undefined"
label=
"用户密码"
prop=
"password"
>
<el-input
v-model=
"form.password"
placeholder=
"请输入用户密码"
type=
"password"
maxlength=
"20"
show-password
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -262,7 +374,8 @@
...
@@ -262,7 +374,8 @@
v-for=
"dict in dict.type.sys_normal_disable"
v-for=
"dict in dict.type.sys_normal_disable"
:key=
"dict.value"
:key=
"dict.value"
:label=
"dict.value"
:label=
"dict.value"
>
{{dict.label}}
</el-radio>
>
{{ dict.label }}
</el-radio
>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -270,7 +383,11 @@
...
@@ -270,7 +383,11 @@
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"岗位"
>
<el-form-item
label=
"岗位"
>
<el-select
v-model=
"form.postIds"
multiple
placeholder=
"请选择岗位"
>
<el-select
v-model=
"form.postIds"
multiple
placeholder=
"请选择岗位"
>
<el-option
<el-option
v-for=
"item in postOptions"
v-for=
"item in postOptions"
:key=
"item.postId"
:key=
"item.postId"
...
@@ -283,7 +400,11 @@
...
@@ -283,7 +400,11 @@
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"角色"
>
<el-form-item
label=
"角色"
>
<el-select
v-model=
"form.roleIds"
multiple
placeholder=
"请选择角色"
>
<el-select
v-model=
"form.roleIds"
multiple
placeholder=
"请选择角色"
>
<el-option
<el-option
v-for=
"item in roleOptions"
v-for=
"item in roleOptions"
:key=
"item.roleId"
:key=
"item.roleId"
...
@@ -298,7 +419,11 @@
...
@@ -298,7 +419,11 @@
<el-row>
<el-row>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
>
<el-form-item
label=
"备注"
>
<el-input
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入内容"
></el-input>
<el-input
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入内容"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -310,7 +435,12 @@
...
@@ -310,7 +435,12 @@
</el-dialog>
</el-dialog>
<!-- 用户导入对话框 -->
<!-- 用户导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible
.
sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-dialog
:title=
"upload.title"
:visible
.
sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
<el-upload
ref=
"upload"
ref=
"upload"
:limit=
"1"
:limit=
"1"
...
@@ -327,10 +457,17 @@
...
@@ -327,10 +457,17 @@
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的用户数据
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的用户数据
</div>
</div>
<span>
仅允许导入xls、xlsx格式文件。
</span>
<span>
仅允许导入xls、xlsx格式文件。
</span>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size: 12px; vertical-align: baseline"
@
click=
"importTemplate"
>
下载模板
</el-link
>
</div>
</div>
</el-upload>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -342,14 +479,23 @@
...
@@ -342,14 +479,23 @@
</template>
</template>
<
script
>
<
script
>
import
{
listUser
,
getUser
,
delUser
,
addUser
,
updateUser
,
resetUserPwd
,
changeUserStatus
,
deptTreeSelect
}
from
"@/api/system/user"
;
import
{
listUser
,
getUser
,
delUser
,
addUser
,
updateUser
,
resetUserPwd
,
changeUserStatus
,
deptTreeSelect
,
}
from
"@/api/system/user"
;
import
{
getToken
}
from
"@/utils/auth"
;
import
{
getToken
}
from
"@/utils/auth"
;
import
Treeselect
from
"@riophae/vue-treeselect"
;
import
Treeselect
from
"@riophae/vue-treeselect"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
export
default
{
export
default
{
name
:
"User"
,
name
:
"User"
,
dicts
:
[
'sys_normal_disable'
,
'sys_user_sex'
],
dicts
:
[
"sys_normal_disable"
,
"sys_user_sex"
],
components
:
{
Treeselect
},
components
:
{
Treeselect
},
data
()
{
data
()
{
return
{
return
{
...
@@ -387,7 +533,7 @@ export default {
...
@@ -387,7 +533,7 @@ export default {
form
:
{},
form
:
{},
defaultProps
:
{
defaultProps
:
{
children
:
"children"
,
children
:
"children"
,
label
:
"label"
label
:
"label"
,
},
},
// 用户导入参数
// 用户导入参数
upload
:
{
upload
:
{
...
@@ -402,16 +548,16 @@ export default {
...
@@ -402,16 +548,16 @@ export default {
// 设置上传的请求头部
// 设置上传的请求头部
headers
:
{
Authorization
:
"Bearer "
+
getToken
()
},
headers
:
{
Authorization
:
"Bearer "
+
getToken
()
},
// 上传的地址
// 上传的地址
url
:
process
.
env
.
VUE_APP_BASE_API
+
"/system/user/importData"
url
:
process
.
env
.
VUE_APP_BASE_API
+
"/system/user/importData"
,
},
},
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
10
,
pageSize
:
10
,
userName
:
undefined
,
userName
:
undefined
,
phonenumber
:
undefined
,
//
phonenumber: undefined,
status
:
undefined
,
//
status: undefined,
deptId
:
undefined
//
deptId: undefined
},
},
// 列信息
// 列信息
columns
:
[
columns
:
[
...
@@ -421,48 +567,58 @@ export default {
...
@@ -421,48 +567,58 @@ export default {
{
key
:
3
,
label
:
`部门`
,
visible
:
true
},
{
key
:
3
,
label
:
`部门`
,
visible
:
true
},
{
key
:
4
,
label
:
`手机号码`
,
visible
:
true
},
{
key
:
4
,
label
:
`手机号码`
,
visible
:
true
},
{
key
:
5
,
label
:
`状态`
,
visible
:
true
},
{
key
:
5
,
label
:
`状态`
,
visible
:
true
},
{
key
:
6
,
label
:
`创建时间`
,
visible
:
true
}
{
key
:
6
,
label
:
`创建时间`
,
visible
:
true
}
,
],
],
// 表单校验
// 表单校验
rules
:
{
rules
:
{
userName
:
[
userName
:
[
{
required
:
true
,
message
:
"用户名称不能为空"
,
trigger
:
"blur"
},
{
required
:
true
,
message
:
"用户名称不能为空"
,
trigger
:
"blur"
},
{
min
:
2
,
max
:
20
,
message
:
'用户名称长度必须介于 2 和 20 之间'
,
trigger
:
'blur'
}
{
min
:
2
,
max
:
20
,
message
:
"用户名称长度必须介于 2 和 20 之间"
,
trigger
:
"blur"
,
},
],
],
nickName
:
[
nickName
:
[
{
required
:
true
,
message
:
"用户昵称不能为空"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"用户昵称不能为空"
,
trigger
:
"blur"
}
,
],
],
password
:
[
password
:
[
{
required
:
true
,
message
:
"用户密码不能为空"
,
trigger
:
"blur"
},
{
required
:
true
,
message
:
"用户密码不能为空"
,
trigger
:
"blur"
},
{
min
:
5
,
max
:
20
,
message
:
'用户密码长度必须介于 5 和 20 之间'
,
trigger
:
'blur'
}
{
min
:
5
,
max
:
20
,
message
:
"用户密码长度必须介于 5 和 20 之间"
,
trigger
:
"blur"
,
},
],
],
email
:
[
email
:
[
{
{
type
:
"email"
,
type
:
"email"
,
message
:
"请输入正确的邮箱地址"
,
message
:
"请输入正确的邮箱地址"
,
trigger
:
[
"blur"
,
"change"
]
trigger
:
[
"blur"
,
"change"
]
,
}
}
,
],
],
phonenumber
:
[
phonenumber
:
[
{
{
pattern
:
/^1
[
3|4|5|6|7|8|9
][
0-9
]\d{8}
$/
,
pattern
:
/^1
[
3|4|5|6|7|8|9
][
0-9
]\d{8}
$/
,
message
:
"请输入正确的手机号码"
,
message
:
"请输入正确的手机号码"
,
trigger
:
"blur"
trigger
:
"blur"
,
}
}
,
]
]
,
}
}
,
};
};
},
},
watch
:
{
watch
:
{
// 根据名称筛选部门树
// 根据名称筛选部门树
deptName
(
val
)
{
deptName
(
val
)
{
this
.
$refs
.
tree
.
filter
(
val
);
this
.
$refs
.
tree
.
filter
(
val
);
}
}
,
},
},
created
()
{
created
()
{
this
.
getList
();
this
.
getList
();
this
.
getDeptTree
();
this
.
getDeptTree
();
this
.
getConfigKey
(
"sys.user.initPassword"
).
then
(
response
=>
{
this
.
getConfigKey
(
"sys.user.initPassword"
).
then
(
(
response
)
=>
{
this
.
initPassword
=
response
.
msg
;
this
.
initPassword
=
response
.
msg
;
});
});
},
},
...
@@ -470,7 +626,8 @@ export default {
...
@@ -470,7 +626,8 @@ export default {
/** 查询用户列表 */
/** 查询用户列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
listUser
(
this
.
addDateRange
(
this
.
queryParams
,
this
.
dateRange
)).
then
(
response
=>
{
listUser
(
this
.
addDateRange
(
this
.
queryParams
,
this
.
dateRange
)).
then
(
(
response
)
=>
{
this
.
userList
=
response
.
rows
;
this
.
userList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
this
.
loading
=
false
;
...
@@ -479,7 +636,7 @@ export default {
...
@@ -479,7 +636,7 @@ export default {
},
},
/** 查询部门下拉树结构 */
/** 查询部门下拉树结构 */
getDeptTree
()
{
getDeptTree
()
{
deptTreeSelect
().
then
(
response
=>
{
deptTreeSelect
().
then
(
(
response
)
=>
{
this
.
deptOptions
=
response
.
data
;
this
.
deptOptions
=
response
.
data
;
});
});
},
},
...
@@ -496,11 +653,15 @@ export default {
...
@@ -496,11 +653,15 @@ export default {
// 用户状态修改
// 用户状态修改
handleStatusChange
(
row
)
{
handleStatusChange
(
row
)
{
let
text
=
row
.
status
===
"0"
?
"启用"
:
"停用"
;
let
text
=
row
.
status
===
"0"
?
"启用"
:
"停用"
;
this
.
$modal
.
confirm
(
'确认要"'
+
text
+
'""'
+
row
.
userName
+
'"用户吗?'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'确认要"'
+
text
+
'""'
+
row
.
userName
+
'"用户吗?'
)
.
then
(
function
()
{
return
changeUserStatus
(
row
.
userId
,
row
.
status
);
return
changeUserStatus
(
row
.
userId
,
row
.
status
);
}).
then
(()
=>
{
})
.
then
(()
=>
{
this
.
$modal
.
msgSuccess
(
text
+
"成功"
);
this
.
$modal
.
msgSuccess
(
text
+
"成功"
);
}).
catch
(
function
()
{
})
.
catch
(
function
()
{
row
.
status
=
row
.
status
===
"0"
?
"1"
:
"0"
;
row
.
status
=
row
.
status
===
"0"
?
"1"
:
"0"
;
});
});
},
},
...
@@ -523,7 +684,7 @@ export default {
...
@@ -523,7 +684,7 @@ export default {
status
:
"0"
,
status
:
"0"
,
remark
:
undefined
,
remark
:
undefined
,
postIds
:
[],
postIds
:
[],
roleIds
:
[]
roleIds
:
[]
,
};
};
this
.
resetForm
(
"form"
);
this
.
resetForm
(
"form"
);
},
},
...
@@ -536,13 +697,13 @@ export default {
...
@@ -536,13 +697,13 @@ export default {
resetQuery
()
{
resetQuery
()
{
this
.
dateRange
=
[];
this
.
dateRange
=
[];
this
.
resetForm
(
"queryForm"
);
this
.
resetForm
(
"queryForm"
);
this
.
queryParams
.
deptId
=
undefined
;
//
this.queryParams.deptId = undefined;
this
.
$refs
.
tree
.
setCurrentKey
(
null
);
//
this.$refs.tree.setCurrentKey(null);
this
.
handleQuery
();
this
.
handleQuery
();
},
},
// 多选框选中数据
// 多选框选中数据
handleSelectionChange
(
selection
)
{
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
userId
);
this
.
ids
=
selection
.
map
(
(
item
)
=>
item
.
userId
);
this
.
single
=
selection
.
length
!=
1
;
this
.
single
=
selection
.
length
!=
1
;
this
.
multiple
=
!
selection
.
length
;
this
.
multiple
=
!
selection
.
length
;
},
},
...
@@ -562,7 +723,7 @@ export default {
...
@@ -562,7 +723,7 @@ export default {
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
reset
();
this
.
reset
();
getUser
().
then
(
response
=>
{
getUser
().
then
(
(
response
)
=>
{
this
.
postOptions
=
response
.
data
.
posts
;
this
.
postOptions
=
response
.
data
.
posts
;
this
.
roleOptions
=
response
.
data
.
roles
;
this
.
roleOptions
=
response
.
data
.
roles
;
this
.
open
=
true
;
this
.
open
=
true
;
...
@@ -574,7 +735,7 @@ export default {
...
@@ -574,7 +735,7 @@ export default {
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
this
.
reset
();
this
.
reset
();
const
userId
=
row
.
userId
||
this
.
ids
;
const
userId
=
row
.
userId
||
this
.
ids
;
getUser
(
userId
).
then
(
response
=>
{
getUser
(
userId
).
then
(
(
response
)
=>
{
this
.
form
=
response
.
data
.
user
;
this
.
form
=
response
.
data
.
user
;
this
.
postOptions
=
response
.
data
.
posts
;
this
.
postOptions
=
response
.
data
.
posts
;
this
.
roleOptions
=
response
.
data
.
roles
;
this
.
roleOptions
=
response
.
data
.
roles
;
...
@@ -592,30 +753,32 @@ export default {
...
@@ -592,30 +753,32 @@ export default {
cancelButtonText
:
"取消"
,
cancelButtonText
:
"取消"
,
closeOnClickModal
:
false
,
closeOnClickModal
:
false
,
inputPattern
:
/^.
{5,20}
$/
,
inputPattern
:
/^.
{5,20}
$/
,
inputErrorMessage
:
"用户密码长度必须介于 5 和 20 之间"
inputErrorMessage
:
"用户密码长度必须介于 5 和 20 之间"
,
}).
then
(({
value
})
=>
{
})
resetUserPwd
(
row
.
userId
,
value
).
then
(
response
=>
{
.
then
(({
value
})
=>
{
resetUserPwd
(
row
.
userId
,
value
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"修改成功,新密码是:"
+
value
);
this
.
$modal
.
msgSuccess
(
"修改成功,新密码是:"
+
value
);
});
});
}).
catch
(()
=>
{});
})
.
catch
(()
=>
{});
},
},
/** 分配角色操作 */
/** 分配角色操作 */
handleAuthRole
:
function
(
row
)
{
handleAuthRole
:
function
(
row
)
{
const
userId
=
row
.
userId
;
const
userId
=
row
.
userId
;
this
.
$router
.
push
(
"/system/user-auth/role/"
+
userId
);
this
.
$router
.
push
(
"/system/user-auth/role/"
+
userId
);
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
:
function
()
{
submitForm
:
function
()
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
this
.
$refs
[
"form"
].
validate
(
(
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
if
(
this
.
form
.
userId
!=
undefined
)
{
if
(
this
.
form
.
userId
!=
undefined
)
{
updateUser
(
this
.
form
).
then
(
response
=>
{
updateUser
(
this
.
form
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
open
=
false
;
this
.
open
=
false
;
this
.
getList
();
this
.
getList
();
});
});
}
else
{
}
else
{
addUser
(
this
.
form
).
then
(
response
=>
{
addUser
(
this
.
form
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"新增成功"
);
this
.
$modal
.
msgSuccess
(
"新增成功"
);
this
.
open
=
false
;
this
.
open
=
false
;
this
.
getList
();
this
.
getList
();
...
@@ -627,18 +790,26 @@ export default {
...
@@ -627,18 +790,26 @@ export default {
/** 删除按钮操作 */
/** 删除按钮操作 */
handleDelete
(
row
)
{
handleDelete
(
row
)
{
const
userIds
=
row
.
userId
||
this
.
ids
;
const
userIds
=
row
.
userId
||
this
.
ids
;
this
.
$modal
.
confirm
(
'是否确认删除用户编号为"'
+
userIds
+
'"的数据项?'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'是否确认删除用户编号为"'
+
userIds
+
'"的数据项?'
)
.
then
(
function
()
{
return
delUser
(
userIds
);
return
delUser
(
userIds
);
}).
then
(()
=>
{
})
.
then
(()
=>
{
this
.
getList
();
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"删除成功"
);
this
.
$modal
.
msgSuccess
(
"删除成功"
);
}).
catch
(()
=>
{});
})
.
catch
(()
=>
{});
},
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
this
.
download
(
'system/user/export'
,
{
this
.
download
(
...
this
.
queryParams
"system/user/export"
,
},
`user_
${
new
Date
().
getTime
()}
.xlsx`
)
{
...
this
.
queryParams
,
},
`user_
${
new
Date
().
getTime
()}
.xlsx`
);
},
},
/** 导入按钮操作 */
/** 导入按钮操作 */
handleImport
()
{
handleImport
()
{
...
@@ -647,8 +818,11 @@ export default {
...
@@ -647,8 +818,11 @@ export default {
},
},
/** 下载模板操作 */
/** 下载模板操作 */
importTemplate
()
{
importTemplate
()
{
this
.
download
(
'system/user/importTemplate'
,
{
this
.
download
(
},
`user_template_
${
new
Date
().
getTime
()}
.xlsx`
)
"system/user/importTemplate"
,
{},
`user_template_
${
new
Date
().
getTime
()}
.xlsx`
);
},
},
// 文件上传中处理
// 文件上传中处理
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
...
@@ -659,13 +833,19 @@ export default {
...
@@ -659,13 +833,19 @@ export default {
this
.
upload
.
open
=
false
;
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>"
+
response
.
msg
+
"</div>"
,
"导入结果"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
$alert
(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>"
+
response
.
msg
+
"</div>"
,
"导入结果"
,
{
dangerouslyUseHTMLString
:
true
}
);
this
.
getList
();
this
.
getList
();
},
},
// 提交上传文件
// 提交上传文件
submitFileForm
()
{
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
this
.
$refs
.
upload
.
submit
();
}
}
,
}
}
,
};
};
</
script
>
</
script
>
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