Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
dsk-cr20g
Commits
0c5b5b25
Commit
0c5b5b25
authored
Aug 31, 2023
by
huangjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*
parent
928f8c41
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
139 additions
and
80 deletions
+139
-80
index.vue
dsk-operate-ui/src/views/system/user/index.vue
+139
-80
No files found.
dsk-operate-ui/src/views/system/user/index.vue
View file @
0c5b5b25
...
@@ -120,9 +120,19 @@
...
@@ -120,9 +120,19 @@
plain
plain
icon=
"el-icon-upload2"
icon=
"el-icon-upload2"
size=
"mini"
size=
"mini"
@
click=
"handleImport"
@
click=
"handleImport
(false)
"
v-hasPermi=
"['system:user:import']"
v-hasPermi=
"['system:user:import']"
>
导入
</el-button>
>
批量新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"info"
plain
icon=
"el-icon-upload2"
size=
"mini"
@
click=
"handleImport(true)"
v-hasPermi=
"['system:user:import']"
>
批量修改
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
<el-button
...
@@ -164,6 +174,7 @@
...
@@ -164,6 +174,7 @@
align=
"center"
align=
"center"
width=
"160"
width=
"160"
class-name=
"small-padding fixed-width"
class-name=
"small-padding fixed-width"
fixed=
"right"
>
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.userId !== 1"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.userId !== 1"
>
<el-button
<el-button
...
@@ -208,7 +219,7 @@
...
@@ -208,7 +219,7 @@
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<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>
...
@@ -220,43 +231,57 @@
...
@@ -220,43 +231,57 @@
</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=
"roleIds"
>
<el-input
v-model=
"form.phonenumber"
placeholder=
"请输入手机号码"
maxlength=
"11"
/>
<el-select
v-model=
"form.roleIds"
multiple
placeholder=
"请选择角色"
>
<el-option
v-for=
"item in roleOptions"
:key=
"item.roleId"
:label=
"item.roleName"
:value=
"item.roleId"
:disabled=
"item.status == 1"
></el-option>
</el-select>
</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=
"phonenumber"
>
<el-input
v-model=
"form.email"
placeholder=
"请输入邮箱"
maxlength=
"50"
/>
<el-input
v-model=
"form.phonenumber"
placeholder=
"请输入手机号码"
maxlength=
"11"
/>
<!--<el-input v-model="form.userName" placeholder="请输入手机号码" maxlength="11" />-->
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<!--<el-col :span="12">-->
<!--<el-form-item label="邮箱" prop="email">-->
<!--<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />-->
<!--</el-form-item>-->
<!--</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 v-if="form.userId == undefined" label="用户名称" prop="userName">--
>
<
el-input
v-model=
"form.userName"
placeholder=
"请输入用户名称"
maxlength=
"30"
/
>
<
!--<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 v-if="form.userId == undefined" label="用户密码" prop="password">--
>
<
el-input
v-model=
"form.password"
placeholder=
"请输入用户密码"
type=
"password"
maxlength=
"20"
show-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>
<el-row>
<el-row>
<!--<el-col :span="12">-->
<!--<el-form-item label="用户性别">-->
<!--<el-select v-model="form.sex" placeholder="请选择性别">-->
<!--<el-option-->
<!--v-for="dict in dict.type.sys_user_sex"-->
<!--:key="dict.value"-->
<!--:label="dict.label"-->
<!--:value="dict.value"-->
<!--></el-option>-->
<!--</el-select>-->
<!--</el-form-item>-->
<!--</el-col>-->
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"用户性别"
>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"form.sex"
placeholder=
"请选择性别"
>
<el-option
v-for=
"dict in dict.type.sys_user_sex"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
<el-radio
v-for=
"dict in dict.type.sys_normal_disable"
v-for=
"dict in dict.type.sys_normal_disable"
...
@@ -268,39 +293,26 @@
...
@@ -268,39 +293,26 @@
</el-col>
</el-col>
</el-row>
</el-row>
<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"-->
:label=
"item.postName"
<!--:label="item.postName"-->
:value=
"item.postId"
<!--:value="item.postId"-->
:disabled=
"item.status == 1"
<!--:disabled="item.status == 1"-->
></el-option>
<!--></el-option>-->
</el-select>
<!--</el-select>-->
</el-form-item>
<!--</el-form-item>-->
</el-col>
<!--</el-col>-->
<el-col
:span=
"12"
>
<el-form-item
label=
"角色"
>
<el-select
v-model=
"form.roleIds"
multiple
placeholder=
"请选择角色"
>
<el-option
v-for=
"item in roleOptions"
:key=
"item.roleId"
:label=
"item.roleName"
:value=
"item.roleId"
:disabled=
"item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-row>
<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>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -326,9 +338,9 @@
...
@@ -326,9 +338,9 @@
<i
class=
"el-icon-upload"
></i>
<i
class=
"el-icon-upload"
></i>
<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>
...
@@ -338,6 +350,33 @@
...
@@ -338,6 +350,33 @@
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<!--导入结果-->
<el-dialog
title=
"导入失败"
:visible
.
sync=
"showupload"
width=
"60%"
append-to-body
>
<
template
>
<el-table
max-height=
"600px"
:data=
"tableData"
border
style=
"width: 100%"
>
<el-table-column
prop=
"date"
label=
"日期"
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"姓名"
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"地址"
>
</el-table-column>
</el-table>
<el-row
style=
"padding-top: 20px;text-align: right"
>
<el-button
@
click=
"showupload = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"downloaderr"
>
生成表格
</el-button>
</el-row>
</
template
>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -353,6 +392,25 @@ export default {
...
@@ -353,6 +392,25 @@ export default {
components
:
{
Treeselect
},
components
:
{
Treeselect
},
data
()
{
data
()
{
return
{
return
{
//导入失败数据
showupload
:
true
,
tableData
:
[{
date
:
'2016-05-02'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1518 弄'
},
{
date
:
'2016-05-04'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1517 弄'
},
{
date
:
'2016-05-01'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1519 弄'
},
{
date
:
'2016-05-03'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1516 弄'
}],
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
// 选中数组
// 选中数组
...
@@ -425,23 +483,17 @@ export default {
...
@@ -425,23 +483,17 @@ export default {
],
],
// 表单校验
// 表单校验
rules
:
{
rules
:
{
userName
:
[
{
required
:
true
,
message
:
"用户名称不能为空"
,
trigger
:
"blur"
},
{
min
:
2
,
max
:
20
,
message
:
'用户名称长度必须介于 2 和 20 之间'
,
trigger
:
'blur'
}
],
nickName
:
[
nickName
:
[
{
required
:
true
,
message
:
"用户昵称不能为空"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"用户昵称不能为空"
,
trigger
:
"blur"
}
],
],
password
:
[
deptId
:
[
{
required
:
true
,
message
:
"用户密码不能为空"
,
trigger
:
"blur"
},
{
required
:
true
,
message
:
"部门不能为空"
,
trigger
:
"blur"
}
{
min
:
5
,
max
:
20
,
message
:
'用户密码长度必须介于 5 和 20 之间'
,
trigger
:
'blur'
}
],
],
email
:
[
roleIds
:
[
{
{
required
:
true
,
message
:
"角色不能为空"
,
trigger
:
"blur"
}
type
:
"email"
,
],
message
:
"请输入正确的邮箱地址"
,
status
:
[
trigger
:
[
"blur"
,
"change"
]
{
required
:
true
,
message
:
"状态不能为空"
,
trigger
:
"blur"
}
}
],
],
phonenumber
:
[
phonenumber
:
[
{
required
:
true
,
message
:
"手机号码不能为空"
,
trigger
:
"blur"
},
{
required
:
true
,
message
:
"手机号码不能为空"
,
trigger
:
"blur"
},
...
@@ -577,9 +629,9 @@ export default {
...
@@ -577,9 +629,9 @@ export default {
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
;
this
.
$set
(
this
.
form
,
"postIds"
,
response
.
data
.
postIds
);
// this.$set(this.form, "postIds", response.data.postIds); 岗位不需要了
this
.
$set
(
this
.
form
,
"roleIds"
,
response
.
data
.
roleIds
);
this
.
$set
(
this
.
form
,
"roleIds"
,
response
.
data
.
roleIds
);
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"修改用户"
;
this
.
title
=
"修改用户"
;
...
@@ -609,6 +661,7 @@ export default {
...
@@ -609,6 +661,7 @@ export default {
submitForm
:
function
()
{
submitForm
:
function
()
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
this
.
form
.
userName
=
this
.
form
.
phonenumber
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
(
"修改成功"
);
...
@@ -642,15 +695,21 @@ export default {
...
@@ -642,15 +695,21 @@ export default {
},
`user_
${
new
Date
().
getTime
()}
.xlsx`
)
},
`user_
${
new
Date
().
getTime
()}
.xlsx`
)
},
},
/** 导入按钮操作 */
/** 导入按钮操作 */
handleImport
()
{
handleImport
(
updateSupport
)
{
this
.
upload
.
title
=
"用户导入"
;
this
.
upload
.
title
=
"用户导入"
;
this
.
upload
.
open
=
true
;
this
.
upload
.
open
=
true
;
this
.
upload
.
updateSupport
=
updateSupport
},
},
/** 下载模板操作 */
/** 下载模板操作 */
importTemplate
()
{
importTemplate
()
{
this
.
download
(
'system/user/importTemplate'
,
{
this
.
download
(
'system/user/importTemplate'
,
{
},
`user_template_
${
new
Date
().
getTime
()}
.xlsx`
)
},
`user_template_
${
new
Date
().
getTime
()}
.xlsx`
)
},
},
//下载导入失败数据
downloaderr
()
{
// this.download('system/user/importTemplate', {
// }, `user_template_${new Date().getTime()}.xlsx`)
},
// 文件上传中处理
// 文件上传中处理
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
this
.
upload
.
isUploading
=
true
;
...
...
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