0.2.4 • Published 4 years ago
xyue-editor v0.2.4
xyue-editor - 富文本编辑器
安装
npm i xyue-editor
编辑器使用
一般在后台使用
<editor v-model="content"
:onChooseImg="uploadImg"
:onChooseVideo="uploadVideo"
:onChooseVideoPoster="uploadImg"
></editor>
import { editor } from 'xyue-editor'
export default {
components: { editor },
data () {
return {
content: ''
}
},
methods: {
uploadImg (files) {
const upload = f => new Promise((resolve, reject) => {
let form = new window.FormData()
form.append('collection', 'javaweb')
form.append('file', f)
this.$api.common.uploadImg(form).then(res => {
if (res.code === 0) {
resolve(res.data.filePath)
} else {
this.$message.error(res.userMsg)
reject(new Error(res.userMsg))
}
}, e => {
this.$message.error(e)
reject(e)
})
})
return new Promise(async (resolve, reject) => {
this.$indicator.open()
try {
const data = []
for (let i = 0; i < files.length; i++) {
data.push(await upload(files[i]))
}
resolve(data.join('|'))
} catch (e) {
reject(e)
}
this.$indicator.close()
})
},
uploadVideo (files) {
let p = Array.from(files).map(f => {
return new Promise((resolve, reject) => {
let form = new window.FormData()
form.append('collection', 'javaweb')
form.append('file', f)
this.$api.common.uploadImg(form).then(res => {
if (res.code === 0) {
resolve(res.data.filePath)
} else {
this.$message.error(res.userMsg)
reject(new Error(res.userMsg))
}
}, e => {
this.$message.error(e)
reject(e)
})
})
})
return new Promise((resolve, reject) => {
this.$indicator.open()
Promise.all(p).then(res => {
resolve(res.join('|'))
}).finally(() => {
this.$indicator.close()
})
})
}
}
}
渲染器使用
前台使用
<viewer :content="content"></viewer>
import { viewer } from 'xyue-editor'
export default {
components: { viewer },
data () {
return {
content: ''
}
},
mounted () {
this.$nextTick(() => {
// 可以在这里操作html
})
},
methods: {
}
}
API
1. editor props
value(v-model)
编辑器里的内容
editable
bool 编辑器是否可以编辑
pcWidth
Number PC端的宽度,单位px,默认640。注意,这个不宜给太大,要考虑用户浏览的体验!一般使用默认值640就行
basicFontSize
Number 基础字体大小,富文本里所有的字体大小都基于这个,默认为16,为了浏览体验,一般也不用改他
colors
编辑器可选的颜色, Array 默认:'#f21c1c', '#1890ff', '#fd9712', '#2ac57f', '#bea68d', '#9c9c9c'
onChooseImg
Function 选择完图片触发,你需要return一个promise,并在这里执行你的上传操作,最后把图片的服务器路径resolve出来
onChooseVideo
Function 选择完视频触发,与图片一致
onChooseVideoPoster
Function 选择完视频封面触发,与上面一致
2. viewer props
content
要渲染的富文本内容
pcWidth
Number PC端的宽度,单位px,默认640。注意,这个不宜给太大,要考虑用户浏览的体验!一般使用默认值640就行
basicFontSize
Number 基础字体大小,富文本里所有的字体大小都基于这个,默认为16,为了浏览体验,一般也不用改他