Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
339b932a
Commit
339b932a
authored
Feb 22, 2021
by
Josway
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
富文本编辑组件支持只读
parent
0b5c7f4c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
200 additions
and
195 deletions
+200
-195
ruoyi-ui/src/components/Editor/index.vue
ruoyi-ui/src/components/Editor/index.vue
+200
-195
No files found.
ruoyi-ui/src/components/Editor/index.vue
View file @
339b932a
<
template
>
<
template
>
<div
class=
"editor"
ref=
"editor"
:style=
"styles"
></div>
<div
class=
"editor"
ref=
"editor"
:style=
"styles"
></div>
</
template
>
</
template
>
<
script
>
<
script
>
import
Quill
from
"
quill
"
;
import
Quill
from
"
quill
"
;
import
"
quill/dist/quill.core.css
"
;
import
"
quill/dist/quill.core.css
"
;
import
"
quill/dist/quill.snow.css
"
;
import
"
quill/dist/quill.snow.css
"
;
import
"
quill/dist/quill.bubble.css
"
;
import
"
quill/dist/quill.bubble.css
"
;
export
default
{
export
default
{
name
:
"
Editor
"
,
name
:
"
Editor
"
,
props
:
{
props
:
{
/* 编辑器的内容 */
/* 编辑器的内容 */
value
:
{
value
:
{
type
:
String
,
type
:
String
,
default
:
""
,
default
:
""
,
},
},
/* 高度 */
/* 高度 */
height
:
{
height
:
{
type
:
Number
,
type
:
Number
,
default
:
null
,
default
:
null
,
},
},
/* 最小高度 */
/* 最小高度 */
minHeight
:
{
minHeight
:
{
type
:
Number
,
type
:
Number
,
default
:
null
,
default
:
null
,
},
},
},
/* 只读 */
data
()
{
readOnly
:
{
return
{
type
:
Boolean
,
Quill
:
null
,
default
:
false
,
currentValue
:
""
,
}
options
:
{
},
theme
:
"
snow
"
,
data
()
{
bounds
:
document
.
body
,
return
{
debug
:
"
warn
"
,
Quill
:
null
,
modules
:
{
currentValue
:
""
,
// 工具栏配置
options
:
{
toolbar
:
[
theme
:
"
snow
"
,
[
"
bold
"
,
"
italic
"
,
"
underline
"
,
"
strike
"
],
// 加粗 斜体 下划线 删除线
bounds
:
document
.
body
,
[
"
blockquote
"
,
"
code-block
"
],
// 引用 代码块
debug
:
"
warn
"
,
[{
list
:
"
ordered
"
},
{
list
:
"
bullet
"
}],
// 有序、无序列表
modules
:
{
[{
indent
:
"
-1
"
},
{
indent
:
"
+1
"
}],
// 缩进
// 工具栏配置
[{
size
:
[
"
small
"
,
false
,
"
large
"
,
"
huge
"
]
}],
// 字体大小
toolbar
:
[
[{
header
:
[
1
,
2
,
3
,
4
,
5
,
6
,
false
]
}],
// 标题
[
"
bold
"
,
"
italic
"
,
"
underline
"
,
"
strike
"
],
// 加粗 斜体 下划线 删除线
[{
color
:
[]
},
{
background
:
[]
}],
// 字体颜色、字体背景颜色
[
"
blockquote
"
,
"
code-block
"
],
// 引用 代码块
[{
align
:
[]
}],
// 对齐方式
[{
list
:
"
ordered
"
},
{
list
:
"
bullet
"
}],
// 有序、无序列表
[
"
clean
"
],
// 清除文本格式
[{
indent
:
"
-1
"
},
{
indent
:
"
+1
"
}],
// 缩进
[
"
link
"
,
"
image
"
,
"
video
"
]
// 链接、图片、视频
[{
size
:
[
"
small
"
,
false
,
"
large
"
,
"
huge
"
]
}],
// 字体大小
],
[{
header
:
[
1
,
2
,
3
,
4
,
5
,
6
,
false
]
}],
// 标题
},
[{
color
:
[]
},
{
background
:
[]
}],
// 字体颜色、字体背景颜色
placeholder
:
"
请输入内容
"
,
[{
align
:
[]
}],
// 对齐方式
readOnly
:
false
,
[
"
clean
"
],
// 清除文本格式
},
[
"
link
"
,
"
image
"
,
"
video
"
]
// 链接、图片、视频
};
],
},
},
computed
:
{
placeholder
:
"
请输入内容
"
,
styles
()
{
readOnly
:
this
.
readOnly
,
let
style
=
{};
},
if
(
this
.
minHeight
)
{
};
style
.
minHeight
=
`
${
this
.
minHeight
}
px`
;
},
}
computed
:
{
if
(
this
.
height
)
{
styles
()
{
style
.
height
=
`
${
this
.
height
}
px`
;
let
style
=
{};
}
if
(
this
.
minHeight
)
{
return
style
;
style
.
minHeight
=
`
${
this
.
minHeight
}
px`
;
},
}
},
if
(
this
.
height
)
{
watch
:
{
style
.
height
=
`
${
this
.
height
}
px`
;
value
:
{
}
handler
(
val
)
{
return
style
;
if
(
val
!==
this
.
currentValue
)
{
},
this
.
currentValue
=
val
===
null
?
""
:
val
;
},
if
(
this
.
Quill
)
{
watch
:
{
this
.
Quill
.
pasteHTML
(
this
.
currentValue
);
value
:
{
}
handler
(
val
)
{
}
if
(
val
!==
this
.
currentValue
)
{
},
this
.
currentValue
=
val
===
null
?
""
:
val
;
immediate
:
true
,
if
(
this
.
Quill
)
{
},
this
.
Quill
.
pasteHTML
(
this
.
currentValue
);
},
}
mounted
()
{
}
this
.
init
();
},
},
immediate
:
true
,
beforeDestroy
()
{
},
this
.
Quill
=
null
;
},
},
mounted
()
{
methods
:
{
this
.
init
();
init
()
{
},
const
editor
=
this
.
$refs
.
editor
;
beforeDestroy
()
{
this
.
Quill
=
new
Quill
(
editor
,
this
.
options
);
this
.
Quill
=
null
;
this
.
Quill
.
pasteHTML
(
this
.
currentValue
);
},
this
.
Quill
.
on
(
"
text-change
"
,
(
delta
,
oldDelta
,
source
)
=>
{
methods
:
{
const
html
=
this
.
$refs
.
editor
.
children
[
0
].
innerHTML
;
init
()
{
const
text
=
this
.
Quill
.
getText
();
const
editor
=
this
.
$refs
.
editor
;
const
quill
=
this
.
Quill
;
this
.
Quill
=
new
Quill
(
editor
,
this
.
options
);
this
.
currentValue
=
html
;
this
.
Quill
.
pasteHTML
(
this
.
currentValue
);
this
.
$emit
(
"
input
"
,
html
);
this
.
Quill
.
on
(
"
text-change
"
,
(
delta
,
oldDelta
,
source
)
=>
{
this
.
$emit
(
"
on-change
"
,
{
html
,
text
,
quill
});
const
html
=
this
.
$refs
.
editor
.
children
[
0
].
innerHTML
;
});
const
text
=
this
.
Quill
.
getText
();
this
.
Quill
.
on
(
"
text-change
"
,
(
delta
,
oldDelta
,
source
)
=>
{
const
quill
=
this
.
Quill
;
this
.
$emit
(
"
on-text-change
"
,
delta
,
oldDelta
,
source
);
this
.
currentValue
=
html
;
});
this
.
$emit
(
"
input
"
,
html
);
this
.
Quill
.
on
(
"
selection-change
"
,
(
range
,
oldRange
,
source
)
=>
{
this
.
$emit
(
"
on-change
"
,
{
html
,
text
,
quill
});
this
.
$emit
(
"
on-selection-change
"
,
range
,
oldRange
,
source
);
});
});
this
.
Quill
.
on
(
"
text-change
"
,
(
delta
,
oldDelta
,
source
)
=>
{
this
.
Quill
.
on
(
"
editor-change
"
,
(
eventName
,
...
args
)
=>
{
this
.
$emit
(
"
on-text-change
"
,
delta
,
oldDelta
,
source
);
this
.
$emit
(
"
on-editor-change
"
,
eventName
,
...
args
);
});
});
this
.
Quill
.
on
(
"
selection-change
"
,
(
range
,
oldRange
,
source
)
=>
{
},
this
.
$emit
(
"
on-selection-change
"
,
range
,
oldRange
,
source
);
},
});
};
this
.
Quill
.
on
(
"
editor-change
"
,
(
eventName
,
...
args
)
=>
{
</
script
>
this
.
$emit
(
"
on-editor-change
"
,
eventName
,
...
args
);
});
<
style
>
},
.editor
,
.ql-toolbar
{
},
white-space
:
pre-wrap
!important
;
};
line-height
:
normal
!important
;
</
script
>
}
.quill-img
{
<
style
>
display
:
none
;
.editor
,
.ql-toolbar
{
}
white-space
:
pre-wrap
!important
;
.ql-snow
.ql-tooltip
[
data-mode
=
"link"
]
::before
{
line-height
:
normal
!important
;
content
:
"请输入链接地址:"
;
}
}
.quill-img
{
.ql-snow
.ql-tooltip.ql-editing
a
.ql-action
::after
{
display
:
none
;
border-right
:
0px
;
}
content
:
"保存"
;
.ql-snow
.ql-tooltip
[
data-mode
=
"link"
]
::before
{
padding-right
:
0px
;
content
:
"请输入链接地址:"
;
}
}
.ql-snow
.ql-tooltip.ql-editing
a
.ql-action
::after
{
.ql-snow
.ql-tooltip
[
data-mode
=
"video"
]
::before
{
border-right
:
0px
;
content
:
"请输入视频地址:"
;
content
:
"保存"
;
}
padding-right
:
0px
;
}
.ql-snow
.ql-picker.ql-size
.ql-picker-label
::before
,
.ql-snow
.ql-picker.ql-size
.ql-picker-item
::before
{
.ql-snow
.ql-tooltip
[
data-mode
=
"video"
]
::before
{
content
:
"14px"
;
content
:
"请输入视频地址:"
;
}
}
.ql-snow
.ql-picker.ql-size
.ql-picker-label
[
data-value
=
"small"
]
::before
,
.ql-snow
.ql-picker.ql-size
.ql-picker-item
[
data-value
=
"small"
]
::before
{
.ql-snow
.ql-picker.ql-size
.ql-picker-label
::before
,
content
:
"10px"
;
.ql-snow
.ql-picker.ql-size
.ql-picker-item
::before
{
}
content
:
"14px"
;
.ql-snow
.ql-picker.ql-size
.ql-picker-label
[
data-value
=
"large"
]
::before
,
}
.ql-snow
.ql-picker.ql-size
.ql-picker-item
[
data-value
=
"large"
]
::before
{
.ql-snow
.ql-picker.ql-size
.ql-picker-label
[
data-value
=
"small"
]
::before
,
content
:
"18px"
;
.ql-snow
.ql-picker.ql-size
.ql-picker-item
[
data-value
=
"small"
]
::before
{
}
content
:
"10px"
;
.ql-snow
.ql-picker.ql-size
.ql-picker-label
[
data-value
=
"huge"
]
::before
,
}
.ql-snow
.ql-picker.ql-size
.ql-picker-item
[
data-value
=
"huge"
]
::before
{
.ql-snow
.ql-picker.ql-size
.ql-picker-label
[
data-value
=
"large"
]
::before
,
content
:
"32px"
;
.ql-snow
.ql-picker.ql-size
.ql-picker-item
[
data-value
=
"large"
]
::before
{
}
content
:
"18px"
;
}
.ql-snow
.ql-picker.ql-header
.ql-picker-label
::before
,
.ql-snow
.ql-picker.ql-size
.ql-picker-label
[
data-value
=
"huge"
]
::before
,
.ql-snow
.ql-picker.ql-header
.ql-picker-item
::before
{
.ql-snow
.ql-picker.ql-size
.ql-picker-item
[
data-value
=
"huge"
]
::before
{
content
:
"文本"
;
content
:
"32px"
;
}
}
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"1"
]
::before
,
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"1"
]
::before
{
.ql-snow
.ql-picker.ql-header
.ql-picker-label
::before
,
content
:
"标题1"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-item
::before
{
}
content
:
"文本"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"2"
]
::before
,
}
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"2"
]
::before
{
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"1"
]
::before
,
content
:
"标题2"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"1"
]
::before
{
}
content
:
"标题1"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"3"
]
::before
,
}
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"3"
]
::before
{
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"2"
]
::before
,
content
:
"标题3"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"2"
]
::before
{
}
content
:
"标题2"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"4"
]
::before
,
}
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"4"
]
::before
{
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"3"
]
::before
,
content
:
"标题4"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"3"
]
::before
{
}
content
:
"标题3"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"5"
]
::before
,
}
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"5"
]
::before
{
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"4"
]
::before
,
content
:
"标题5"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"4"
]
::before
{
}
content
:
"标题4"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"6"
]
::before
,
}
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"6"
]
::before
{
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"5"
]
::before
,
content
:
"标题6"
;
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"5"
]
::before
{
}
content
:
"标题5"
;
}
.ql-snow
.ql-picker.ql-font
.ql-picker-label
::before
,
.ql-snow
.ql-picker.ql-header
.ql-picker-label
[
data-value
=
"6"
]
::before
,
.ql-snow
.ql-picker.ql-font
.ql-picker-item
::before
{
.ql-snow
.ql-picker.ql-header
.ql-picker-item
[
data-value
=
"6"
]
::before
{
content
:
"标准字体"
;
content
:
"标题6"
;
}
}
.ql-snow
.ql-picker.ql-font
.ql-picker-label
[
data-value
=
"serif"
]
::before
,
.ql-snow
.ql-picker.ql-font
.ql-picker-item
[
data-value
=
"serif"
]
::before
{
.ql-snow
.ql-picker.ql-font
.ql-picker-label
::before
,
content
:
"衬线字体"
;
.ql-snow
.ql-picker.ql-font
.ql-picker-item
::before
{
}
content
:
"标准字体"
;
.ql-snow
.ql-picker.ql-font
.ql-picker-label
[
data-value
=
"monospace"
]
::before
,
}
.ql-snow
.ql-picker.ql-font
.ql-picker-item
[
data-value
=
"monospace"
]
::before
{
.ql-snow
.ql-picker.ql-font
.ql-picker-label
[
data-value
=
"serif"
]
::before
,
content
:
"等宽字体"
;
.ql-snow
.ql-picker.ql-font
.ql-picker-item
[
data-value
=
"serif"
]
::before
{
}
content
:
"衬线字体"
;
</
style
>
}
\ No newline at end of file
.ql-snow
.ql-picker.ql-font
.ql-picker-label
[
data-value
=
"monospace"
]
::before
,
.ql-snow
.ql-picker.ql-font
.ql-picker-item
[
data-value
=
"monospace"
]
::before
{
content
:
"等宽字体"
;
}
</
style
>
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