Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cocktail-party-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cocktail-party
cocktail-party-server
Commits
18c8d4ec
提交
18c8d4ec
authored
8月 09, 2025
作者:
RuoYi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
显示列信息支持对象格式
上级
191fd293
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
58 行增加
和
27 行删除
+58
-27
index.vue
ruoyi-ui/src/components/RightToolbar/index.vue
+42
-11
index.vue
ruoyi-ui/src/views/system/user/index.vue
+16
-16
没有找到文件。
ruoyi-ui/src/components/RightToolbar/index.vue
浏览文件 @
18c8d4ec
...
@@ -17,9 +17,9 @@
...
@@ -17,9 +17,9 @@
<el-checkbox
:indeterminate=
"isIndeterminate"
v-model=
"isChecked"
@
change=
"toggleCheckAll"
>
列展示
</el-checkbox>
<el-checkbox
:indeterminate=
"isIndeterminate"
v-model=
"isChecked"
@
change=
"toggleCheckAll"
>
列展示
</el-checkbox>
</el-dropdown-item>
</el-dropdown-item>
<div
class=
"check-line"
></div>
<div
class=
"check-line"
></div>
<template
v-for=
"
item
in columns"
>
<template
v-for=
"
(item, key)
in columns"
>
<el-dropdown-item
:key=
"
item.
key"
>
<el-dropdown-item
:key=
"key"
>
<el-checkbox
v-model=
"item.visible"
@
change=
"checkboxChange($event,
item.label
)"
:label=
"item.label"
/>
<el-checkbox
v-model=
"item.visible"
@
change=
"checkboxChange($event,
key
)"
:label=
"item.label"
/>
</el-dropdown-item>
</el-dropdown-item>
</
template
>
</
template
>
</el-dropdown-menu>
</el-dropdown-menu>
...
@@ -30,12 +30,13 @@
...
@@ -30,12 +30,13 @@
<el-transfer
<el-transfer
:titles=
"['显示', '隐藏']"
:titles=
"['显示', '隐藏']"
v-model=
"value"
v-model=
"value"
:data=
"
columns
"
:data=
"
transferData
"
@
change=
"dataChange"
@
change=
"dataChange"
></el-transfer>
></el-transfer>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
export
default
{
export
default
{
name
:
"RightToolbar"
,
name
:
"RightToolbar"
,
...
@@ -55,9 +56,9 @@ export default {
...
@@ -55,9 +56,9 @@ export default {
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
},
/* 显隐列信息 */
/* 显隐列信息
(数组格式、对象格式)
*/
columns
:
{
columns
:
{
type
:
Array
type
:
[
Array
,
Object
]
},
},
/* 是否显示检索图标 */
/* 是否显示检索图标 */
search
:
{
search
:
{
...
@@ -85,22 +86,37 @@ export default {
...
@@ -85,22 +86,37 @@ export default {
},
},
isChecked
:
{
isChecked
:
{
get
()
{
get
()
{
return
this
.
columns
.
every
((
col
)
=>
col
.
visible
)
return
Array
.
isArray
(
this
.
columns
)
?
this
.
columns
.
every
((
col
)
=>
col
.
visible
)
:
Object
.
values
(
this
.
columns
)
.
every
((
col
)
=>
col
.
visible
)
},
},
set
()
{}
set
()
{}
},
},
isIndeterminate
()
{
isIndeterminate
()
{
return
this
.
columns
.
some
((
col
)
=>
col
.
visible
)
&&
!
this
.
isChecked
return
Array
.
isArray
(
this
.
columns
)
?
this
.
columns
.
some
((
col
)
=>
col
.
visible
)
&&
!
this
.
isChecked
:
Object
.
values
(
this
.
columns
).
some
((
col
)
=>
col
.
visible
)
&&
!
this
.
isChecked
},
transferData
()
{
if
(
Array
.
isArray
(
this
.
columns
))
{
return
this
.
columns
.
map
((
item
,
index
)
=>
({
key
:
index
,
label
:
item
.
label
}))
}
else
{
return
Object
.
keys
(
this
.
columns
).
map
((
key
,
index
)
=>
({
key
:
index
,
label
:
this
.
columns
[
key
].
label
}))
}
}
}
},
},
created
()
{
created
()
{
if
(
this
.
showColumnsType
==
'transfer'
)
{
if
(
this
.
showColumnsType
==
'transfer'
)
{
// 显隐列初始默认隐藏列
// transfer穿梭显隐列初始默认隐藏列
if
(
Array
.
isArray
(
this
.
columns
))
{
for
(
let
item
in
this
.
columns
)
{
for
(
let
item
in
this
.
columns
)
{
if
(
this
.
columns
[
item
].
visible
===
false
)
{
if
(
this
.
columns
[
item
].
visible
===
false
)
{
this
.
value
.
push
(
parseInt
(
item
))
this
.
value
.
push
(
parseInt
(
item
))
}
}
}
}
}
else
{
Object
.
keys
(
this
.
columns
).
forEach
((
key
,
index
)
=>
{
if
(
this
.
columns
[
key
].
visible
===
false
)
{
this
.
value
.
push
(
index
)
}
})
}
}
}
},
},
methods
:
{
methods
:
{
...
@@ -114,27 +130,42 @@ export default {
...
@@ -114,27 +130,42 @@ export default {
},
},
// 右侧列表元素变化
// 右侧列表元素变化
dataChange
(
data
)
{
dataChange
(
data
)
{
if
(
Array
.
isArray
(
this
.
columns
))
{
for
(
let
item
in
this
.
columns
)
{
for
(
let
item
in
this
.
columns
)
{
const
key
=
this
.
columns
[
item
].
key
const
key
=
this
.
columns
[
item
].
key
this
.
columns
[
item
].
visible
=
!
data
.
includes
(
key
)
this
.
columns
[
item
].
visible
=
!
data
.
includes
(
key
)
}
}
}
else
{
Object
.
keys
(
this
.
columns
).
forEach
((
key
,
index
)
=>
{
this
.
columns
[
key
].
visible
=
!
data
.
includes
(
index
)
})
}
},
},
// 打开显隐列dialog
// 打开显隐列dialog
showColumn
()
{
showColumn
()
{
this
.
open
=
true
this
.
open
=
true
},
},
// 单勾选
// 单勾选
checkboxChange
(
event
,
label
)
{
checkboxChange
(
event
,
key
)
{
this
.
columns
.
filter
(
item
=>
item
.
label
==
label
)[
0
].
visible
=
event
if
(
Array
.
isArray
(
this
.
columns
))
{
this
.
columns
.
filter
(
item
=>
item
.
key
==
key
)[
0
].
visible
=
event
}
else
{
this
.
columns
[
key
].
visible
=
event
}
},
},
// 切换全选/反选
// 切换全选/反选
toggleCheckAll
()
{
toggleCheckAll
()
{
const
newValue
=
!
this
.
isChecked
const
newValue
=
!
this
.
isChecked
if
(
Array
.
isArray
(
this
.
columns
))
{
this
.
columns
.
forEach
((
col
)
=>
(
col
.
visible
=
newValue
))
this
.
columns
.
forEach
((
col
)
=>
(
col
.
visible
=
newValue
))
}
else
{
Object
.
values
(
this
.
columns
).
forEach
((
col
)
=>
(
col
.
visible
=
newValue
))
}
}
}
},
},
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-transfer__button
{
::v-deep
.el-transfer__button
{
border-radius
:
50%
;
border-radius
:
50%
;
...
...
ruoyi-ui/src/views/system/user/index.vue
浏览文件 @
18c8d4ec
...
@@ -58,17 +58,17 @@
...
@@ -58,17 +58,17 @@
<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
label=
"用户编号"
align=
"center"
key=
"userId"
prop=
"userId"
v-if=
"columns
.userId
.visible"
/>
<el-table-column
label=
"用户名称"
align=
"center"
key=
"userName"
prop=
"userName"
v-if=
"columns
[1]
.visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"用户名称"
align=
"center"
key=
"userName"
prop=
"userName"
v-if=
"columns
.userName
.visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"用户昵称"
align=
"center"
key=
"nickName"
prop=
"nickName"
v-if=
"columns
[2]
.visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"用户昵称"
align=
"center"
key=
"nickName"
prop=
"nickName"
v-if=
"columns
.nickName
.visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"部门"
align=
"center"
key=
"deptName"
prop=
"dept.deptName"
v-if=
"columns
[3]
.visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"部门"
align=
"center"
key=
"deptName"
prop=
"dept.deptName"
v-if=
"columns
.deptName
.visible"
: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=
"phonenumber"
prop=
"phonenumber"
v-if=
"columns
.phonenumber
.visible"
width=
"120"
/>
<el-table-column
label=
"状态"
align=
"center"
key=
"status"
v-if=
"columns
[5]
.visible"
>
<el-table-column
label=
"状态"
align=
"center"
key=
"status"
v-if=
"columns
.status
.visible"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.status"
active-value=
"0"
inactive-value=
"1"
@
change=
"handleStatusChange(scope.row)"
></el-switch>
<el-switch
v-model=
"scope.row.status"
active-value=
"0"
inactive-value=
"1"
@
change=
"handleStatusChange(scope.row)"
></el-switch>
</
template
>
</
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"
v-if=
"columns
.createTime
.visible"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</
template
>
...
@@ -277,15 +277,15 @@ export default {
...
@@ -277,15 +277,15 @@ export default {
deptId
:
undefined
deptId
:
undefined
},
},
// 列信息
// 列信息
columns
:
[
columns
:
{
{
key
:
0
,
label
:
`用户编号`
,
visible
:
true
},
userId
:
{
label
:
'用户编号'
,
visible
:
true
},
{
key
:
1
,
label
:
`用户名称`
,
visible
:
true
},
userName
:
{
label
:
'用户名称'
,
visible
:
true
},
{
key
:
2
,
label
:
`用户昵称`
,
visible
:
true
},
nickName
:
{
label
:
'用户昵称'
,
visible
:
true
},
{
key
:
3
,
label
:
`部门`
,
visible
:
true
},
deptName
:
{
label
:
'部门'
,
visible
:
true
},
{
key
:
4
,
label
:
`手机号码`
,
visible
:
true
},
phonenumber
:
{
label
:
'手机号码'
,
visible
:
true
},
{
key
:
5
,
label
:
`状态`
,
visible
:
true
},
status
:
{
label
:
'状态'
,
visible
:
true
},
{
key
:
6
,
label
:
`创建时间`
,
visible
:
true
}
createTime
:
{
label
:
'创建时间'
,
visible
:
true
}
]
,
}
,
// 表单校验
// 表单校验
rules
:
{
rules
:
{
userName
:
[
userName
:
[
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论