Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
RuoYi Vue
Commits
d1eacc1d
Commit
d1eacc1d
authored
Nov 19, 2021
by
RuoYi
Browse files
新增tab对象简化页签操作
parent
e41dd8a0
Changes
11
Hide whitespace changes
Inline
Side-by-side
ruoyi-ui/src/layout/components/TagsView/index.vue
View file @
d1eacc1d
...
...
@@ -152,31 +152,24 @@ export default {
})
},
refreshSelectedTag
(
view
)
{
this
.
$store
.
dispatch
(
'
tagsView/delCachedView
'
,
view
).
then
(()
=>
{
const
{
fullPath
}
=
view
this
.
$nextTick
(()
=>
{
this
.
$router
.
replace
({
path
:
'
/redirect
'
+
fullPath
})
})
})
this
.
$tab
.
refreshPage
(
view
);
},
closeSelectedTag
(
view
)
{
this
.
$
store
.
dispatch
(
'
tagsView/delView
'
,
view
).
then
(({
visitedViews
})
=>
{
this
.
$
tab
.
closePage
(
view
).
then
(({
visitedViews
})
=>
{
if
(
this
.
isActive
(
view
))
{
this
.
toLastView
(
visitedViews
,
view
)
}
})
},
closeRightTags
()
{
this
.
$
store
.
dispatch
(
'
tagsView/del
Right
T
ag
s
'
,
this
.
selectedTag
).
then
(
visitedViews
=>
{
this
.
$
tab
.
close
Right
P
ag
e
(
this
.
selectedTag
).
then
(
visitedViews
=>
{
if
(
!
visitedViews
.
find
(
i
=>
i
.
fullPath
===
this
.
$route
.
fullPath
))
{
this
.
toLastView
(
visitedViews
)
}
})
},
closeLeftTags
()
{
this
.
$
store
.
dispatch
(
'
tagsView/del
Left
T
ag
s
'
,
this
.
selectedTag
).
then
(
visitedViews
=>
{
this
.
$
tab
.
close
Left
P
ag
e
(
this
.
selectedTag
).
then
(
visitedViews
=>
{
if
(
!
visitedViews
.
find
(
i
=>
i
.
fullPath
===
this
.
$route
.
fullPath
))
{
this
.
toLastView
(
visitedViews
)
}
...
...
@@ -184,12 +177,12 @@ export default {
},
closeOthersTags
()
{
this
.
$router
.
push
(
this
.
selectedTag
).
catch
(()
=>
{});
this
.
$
store
.
dispatch
(
'
tagsView/delOthersViews
'
,
this
.
selectedTag
).
then
(()
=>
{
this
.
$
tab
.
closeOtherPage
(
this
.
selectedTag
).
then
(()
=>
{
this
.
moveToCurrentTag
()
})
},
closeAllTags
(
view
)
{
this
.
$
store
.
dispatch
(
'
tagsView/delAllViews
'
).
then
(({
visitedViews
})
=>
{
this
.
$
tab
.
closeAllPage
(
).
then
(({
visitedViews
})
=>
{
if
(
this
.
affixTags
.
some
(
tag
=>
tag
.
path
===
this
.
$route
.
path
))
{
return
}
...
...
ruoyi-ui/src/plugins/index.js
View file @
d1eacc1d
import
tab
from
'
./tab
'
import
auth
from
'
./auth
'
import
cache
from
'
./cache
'
import
modal
from
'
./modal
'
...
...
@@ -5,6 +6,8 @@ import download from './download'
export
default
{
install
(
Vue
)
{
// 页签操作
Vue
.
prototype
.
$tab
=
tab
// 认证对象
Vue
.
prototype
.
$auth
=
auth
// 缓存对象
...
...
ruoyi-ui/src/plugins/tab.js
0 → 100644
View file @
d1eacc1d
import
store
from
'
@/store
'
import
router
from
'
@/router
'
;
export
default
{
// 刷新当前tab页签
refreshPage
(
obj
)
{
const
{
path
,
matched
}
=
router
.
currentRoute
;
if
(
obj
===
undefined
)
{
matched
.
forEach
((
m
)
=>
{
if
(
m
.
components
&&
m
.
components
.
default
&&
m
.
components
.
default
.
name
)
{
if
(
!
[
'
Layout
'
,
'
ParentView
'
].
includes
(
m
.
components
.
default
.
name
))
{
obj
=
{
name
:
m
.
components
.
default
.
name
,
path
:
path
};
}
}
});
}
return
store
.
dispatch
(
'
tagsView/delCachedView
'
,
obj
).
then
(()
=>
{
const
{
path
}
=
obj
router
.
replace
({
path
:
'
/redirect
'
+
path
})
})
},
// 关闭当前tab页签,打开新页签
closeOpenPage
(
obj
)
{
store
.
dispatch
(
"
tagsView/delView
"
,
router
.
currentRoute
);
if
(
obj
!==
undefined
)
{
return
router
.
push
(
obj
);
}
},
// 关闭指定tab页签
closePage
(
obj
)
{
if
(
obj
===
undefined
)
{
return
store
.
dispatch
(
'
tagsView/delView
'
,
router
.
currentRoute
).
then
(({
lastPath
})
=>
{
return
router
.
push
(
lastPath
||
'
/
'
);
});
}
return
store
.
dispatch
(
'
tagsView/delView
'
,
obj
);
},
// 关闭所有tab页签
closeAllPage
()
{
return
store
.
dispatch
(
'
tagsView/delAllViews
'
);
},
// 关闭左侧tab页签
closeLeftPage
(
obj
)
{
return
store
.
dispatch
(
'
tagsView/delLeftTags
'
,
obj
||
router
.
currentRoute
);
},
// 关闭右侧tab页签
closeRightPage
(
obj
)
{
return
store
.
dispatch
(
'
tagsView/delRightTags
'
,
obj
||
router
.
currentRoute
);
},
// 关闭其他tab页签
closeOtherPage
(
obj
)
{
return
store
.
dispatch
(
'
tagsView/delOthersViews
'
,
obj
||
router
.
currentRoute
);
},
// 添加tab页签
addPage
(
title
,
url
)
{
var
obj
=
{
path
:
url
,
meta
:
{
title
:
title
}
}
store
.
dispatch
(
'
tagsView/addView
'
,
obj
);
return
router
.
push
(
url
);
},
// 修改tab页签
updatePage
(
obj
)
{
return
store
.
dispatch
(
'
tagsView/updateVisitedView
'
,
obj
);
}
}
ruoyi-ui/src/store/modules/tagsView.js
View file @
d1eacc1d
...
...
@@ -14,7 +14,7 @@ const mutations = {
},
ADD_CACHED_VIEW
:
(
state
,
view
)
=>
{
if
(
state
.
cachedViews
.
includes
(
view
.
name
))
return
if
(
!
view
.
meta
.
noCache
)
{
if
(
view
.
meta
&&
!
view
.
meta
.
noCache
)
{
state
.
cachedViews
.
push
(
view
.
name
)
}
},
...
...
ruoyi-ui/src/views/monitor/job/log.vue
View file @
d1eacc1d
...
...
@@ -245,8 +245,8 @@ export default {
},
// 返回按钮
handleClose
()
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
)
;
this
.
$
router
.
push
({
path
:
"
/monitor/job
"
}
);
const
obj
=
{
path
:
"
/monitor/job
"
}
;
this
.
$
tab
.
closeOpenPage
(
obj
);
},
/** 搜索按钮操作 */
handleQuery
()
{
...
...
ruoyi-ui/src/views/system/dict/data.vue
View file @
d1eacc1d
...
...
@@ -79,6 +79,15 @@
v-hasPermi=
"['system:dict:export']"
>
导出
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-close"
size=
"mini"
@
click=
"handleClose"
>
关闭
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -316,6 +325,11 @@ export default {
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
// 返回按钮
handleClose
()
{
const
obj
=
{
path
:
"
/system/dict
"
};
this
.
$tab
.
closeOpenPage
(
obj
);
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"
queryForm
"
);
...
...
ruoyi-ui/src/views/system/role/authUser.vue
View file @
d1eacc1d
...
...
@@ -153,8 +153,8 @@ export default {
},
// 返回按钮
handleClose
()
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
)
;
this
.
$
router
.
push
({
path
:
"
/system/role
"
}
);
const
obj
=
{
path
:
"
/system/role
"
}
;
this
.
$
tab
.
closeOpenPage
(
obj
);
},
/** 搜索按钮操作 */
handleQuery
()
{
...
...
ruoyi-ui/src/views/system/user/authRole.vue
View file @
d1eacc1d
...
...
@@ -109,8 +109,8 @@ export default {
},
/** 关闭按钮 */
close
()
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
)
;
this
.
$
router
.
push
({
path
:
"
/system/user
"
}
);
const
obj
=
{
path
:
"
/system/user
"
}
;
this
.
$
tab
.
closeOpenPage
(
obj
);
},
},
};
...
...
ruoyi-ui/src/views/system/user/profile/resetPwd.vue
View file @
d1eacc1d
...
...
@@ -64,8 +64,7 @@ export default {
});
},
close
()
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$router
.
push
({
path
:
"
/index
"
});
this
.
$tab
.
closePage
();
}
}
};
...
...
ruoyi-ui/src/views/system/user/profile/userInfo.vue
View file @
d1eacc1d
...
...
@@ -68,8 +68,7 @@ export default {
});
},
close
()
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$router
.
push
({
path
:
"
/index
"
});
this
.
$tab
.
closePage
();
}
}
};
...
...
ruoyi-ui/src/views/tool/gen/editTable.vue
View file @
d1eacc1d
...
...
@@ -211,8 +211,8 @@ export default {
},
/** 关闭按钮 */
close
()
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
)
;
this
.
$
router
.
push
({
path
:
"
/tool/gen
"
,
query
:
{
t
:
Date
.
now
(),
pageNum
:
this
.
$route
.
query
.
pageNum
}
})
const
obj
=
{
path
:
"
/tool/gen
"
,
query
:
{
t
:
Date
.
now
(),
pageNum
:
this
.
$route
.
query
.
pageNum
}
}
;
this
.
$
tab
.
closeOpenPage
(
obj
);
}
},
mounted
()
{
...
...
Write
Preview
Supports
Markdown
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