Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
sts网站
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
liyang
sts网站
Commits
5dec58e7
Commit
5dec58e7
authored
Jul 09, 2021
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
自定义弹窗拖拽指令
parent
8321f92d
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
71 additions
and
4 deletions
+71
-4
drag.js
ruoyi-ui/src/directive/dialog/drag.js
+64
-0
index.js
ruoyi-ui/src/directive/index.js
+5
-2
hasPermi.js
ruoyi-ui/src/directive/permission/hasPermi.js
+1
-1
hasRole.js
ruoyi-ui/src/directive/permission/hasRole.js
+1
-1
No files found.
ruoyi-ui/src/directive/dialog/drag.js
0 → 100644
View file @
5dec58e7
/**
* v-dialogDrag 弹窗拖拽
* Copyright (c) 2019 ruoyi
*/
export
default
{
bind
(
el
,
binding
,
vnode
,
oldVnode
)
{
const
value
=
binding
.
value
if
(
value
==
false
)
return
// 获取拖拽内容头部
const
dialogHeaderEl
=
el
.
querySelector
(
'.el-dialog__header'
);
const
dragDom
=
el
.
querySelector
(
'.el-dialog'
);
dialogHeaderEl
.
style
.
cursor
=
'move'
;
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
const
sty
=
dragDom
.
currentStyle
||
window
.
getComputedStyle
(
dragDom
,
null
);
dragDom
.
style
.
position
=
'absolute'
;
dragDom
.
style
.
marginTop
=
0
;
let
width
=
dragDom
.
style
.
width
;
if
(
width
.
includes
(
'%'
))
{
width
=
+
document
.
body
.
clientWidth
*
(
+
width
.
replace
(
/
\%
/g
,
''
)
/
100
);
}
else
{
width
=
+
width
.
replace
(
/
\p
x/g
,
''
);
}
dragDom
.
style
.
left
=
`
${(
document
.
body
.
clientWidth
-
width
)
/
2
}
px`
;
// 鼠标按下事件
dialogHeaderEl
.
onmousedown
=
(
e
)
=>
{
// 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
const
disX
=
e
.
clientX
-
dialogHeaderEl
.
offsetLeft
;
const
disY
=
e
.
clientY
-
dialogHeaderEl
.
offsetTop
;
// 获取到的值带px 正则匹配替换
let
styL
,
styT
;
// 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
if
(
sty
.
left
.
includes
(
'%'
))
{
styL
=
+
document
.
body
.
clientWidth
*
(
+
sty
.
left
.
replace
(
/
\%
/g
,
''
)
/
100
);
styT
=
+
document
.
body
.
clientHeight
*
(
+
sty
.
top
.
replace
(
/
\%
/g
,
''
)
/
100
);
}
else
{
styL
=
+
sty
.
left
.
replace
(
/
\p
x/g
,
''
);
styT
=
+
sty
.
top
.
replace
(
/
\p
x/g
,
''
);
};
// 鼠标拖拽事件
document
.
onmousemove
=
function
(
e
)
{
// 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
const
l
=
e
.
clientX
-
disX
;
const
t
=
e
.
clientY
-
disY
;
let
finallyL
=
l
+
styL
let
finallyT
=
t
+
styT
// 移动当前元素
dragDom
.
style
.
left
=
`
${
finallyL
}
px`
;
dragDom
.
style
.
top
=
`
${
finallyT
}
px`
;
};
document
.
onmouseup
=
function
(
e
)
{
document
.
onmousemove
=
null
;
document
.
onmouseup
=
null
;
};
}
}
};
\ No newline at end of file
ruoyi-ui/src/directive/
permission/
index.js
→
ruoyi-ui/src/directive/index.js
View file @
5dec58e7
import
hasRole
from
'./hasRole'
import
hasRole
from
'./permission/hasRole'
import
hasPermi
from
'./hasPermi'
import
hasPermi
from
'./permission/hasPermi'
import
dialogDrag
from
'./dialog/drag'
const
install
=
function
(
Vue
)
{
const
install
=
function
(
Vue
)
{
Vue
.
directive
(
'hasRole'
,
hasRole
)
Vue
.
directive
(
'hasRole'
,
hasRole
)
Vue
.
directive
(
'hasPermi'
,
hasPermi
)
Vue
.
directive
(
'hasPermi'
,
hasPermi
)
Vue
.
directive
(
'dialogDrag'
,
dialogDrag
)
}
}
if
(
window
.
Vue
)
{
if
(
window
.
Vue
)
{
window
[
'hasRole'
]
=
hasRole
window
[
'hasRole'
]
=
hasRole
window
[
'hasPermi'
]
=
hasPermi
window
[
'hasPermi'
]
=
hasPermi
window
[
'dialogDrag'
]
=
dialogDrag
Vue
.
use
(
install
);
// eslint-disable-line
Vue
.
use
(
install
);
// eslint-disable-line
}
}
...
...
ruoyi-ui/src/directive/permission/hasPermi.js
View file @
5dec58e7
/**
/**
* 操作权限处理
*
v-hasPermi
操作权限处理
* Copyright (c) 2019 ruoyi
* Copyright (c) 2019 ruoyi
*/
*/
...
...
ruoyi-ui/src/directive/permission/hasRole.js
View file @
5dec58e7
/**
/**
* 角色权限处理
*
v-hasRole
角色权限处理
* Copyright (c) 2019 ruoyi
* Copyright (c) 2019 ruoyi
*/
*/
...
...
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