mavonEditor

Install mavon-editor (安装)

 npm install mavon-editor --save

如何引入:

全局引用:

    // 全局注册
import Vue from 'vue'
import mavonEditor from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
// use
Vue.use(mavonEditor)
new Vue({
router,
store,
render: (h) => h(App),
}).$mount("#app");

不全局引用,在组件中引用 :

<template>
<div>
<div>
<mavon-editor class="comments"
v-model="content"
:subfield="false"
ref="md"
:toolbars="markdownOption"
@change="change"
/>
<div>
<button @click="submit">提交</button>
</div>
</div>
</div>
</template>
<script>
import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
export default {
data(){
return{
content:'', // 输入的markdown
html:'', // 及时转的html
markdownOption:{ //自定义文本标签
bold: true, // 粗体
italic: true,// 斜体
strikethrough: true, // 中划线
underline: true, // 下划线
}
}
}
components:{
mavonEditor,
},
methods:{
// 所有操作都会被解析重新渲染
change(value, render){
// render 为 markdown 解析后的结果[html]
this.html = render;
},
submit(){
console.log("提交");
},
}
}
</script>

图片上传:

用 mavon-editor 自带的 imgAdd 属性将图片上传到服务器,将返回的地址替换到md当中
 
<template>
<div>
<div>
<mavon-editor class="comments"
v-model="content"
:subfield="false"
@imgAdd="$imgAdd"
ref="md"
:toolbars="markdownOption"
@change="change"
/>
<div>
<button @click="submit">提交</button>
</div>
</div>
</div>
</template>
<script>
import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
export default {
data(){
return{
content:'', // 输入的markdown
html:'', // 及时转的html
markdownOption:{ //自定义文本标签
bold: true, // 粗体
italic: true,// 斜体
strikethrough: true, // 中划线
underline: true, // 下划线
}
}
}
components:{
mavonEditor,
},
methods:{
// 所有操作都会被解析重新渲染
change(value, render){
// render 为 markdown 解析后的结果[html]
this.html = render;
},
submit(){
console.log("提交");
},
// 将图片上传到服务器,返回地址替换到md中 $imgAdd(pos, $file){
console.log($file)
let formdata = new FormData();
formdata.append('file',$file)
this.$axios.post('上传服务器链接', formdata).then(res => {
console.log(res.data.url);
this.$refs.md.$img2Url(pos, res.data.url);
}).catch(err => {
console.log(err)
})
},
}
}
</script>

图片删除:

图片删除的逻辑实现和代码都很简单:前端传给后端url全路径,后端接收并调用删除方法即可。

前端代码:

imgDel(pos){
//通过pos[0]取出文件路径。
let url = pos[0]
/*调用axios发送请求。此处自己自行创建了一个header键值进行数据传递*/
axios({
url:'http://localhost/api/file/imgDel',
method:'POST',
headers:{'Img-Delete': url},
}).then().catch(error=>{this.$message({message:error,type:'error',showClose:true,center:true})})
}

对应后端:

@PostMapping("imgDel")
public Result articleImgDel(@RequestHeader("Img-Delete")String url){
if(url.isEmpty()){
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMsg());
}
qiniuUtils.delete(url); //删除云服务器文件
return Result.success(null);
}
 
 
 

最新文章

  1. HBASE学习笔记-初步印象
  2. postgis数据库文件shapefile导入 dbf file (.dbf) can not be opened.shapefile import failed.
  3. [转]Display PDF within web browser using MVC3
  4. UVALive 6181
  5. iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
  6. .NET: C#: StopWatch
  7. Northwind数据库表字段介绍
  8. CSS边框与边界
  9. Unix/Linux环境C编程入门教程(38) shell命令进阶演示
  10. Jenkins master在windows
  11. XP 右键扩展设置 1.0 免费绿色版
  12. [Linux] 使用openssl实现RSA非对称加密
  13. Verilog读写文件
  14. 非关系型数据库redis-java基本操作
  15. 适用于nodercms的打包构建脚本
  16. ssh登录locale报错:cannot change locale (zh_CN.UTF-8): No such file or directory
  17. 查找常用字符(给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。)
  18. Spring MVC 后端获取前端提交的json格式字符串并直接转换成control方法对应的参数对象
  19. AT91RM9200---电源管理控制器(PMC)介绍
  20. Vue项目框架

热门文章

  1. Unity2D-Dash &amp;&amp; SpeedUp
  2. 【debug】 Linux中top的使用
  3. 合理编写C++模块(.h、.cc)
  4. 使用docker-compose.yml安装rabbitmq集群
  5. 使用KubeOperator安装k8s集群后,节点主机yaml文件路径
  6. Elasticsearch 开发入门 - Python
  7. reflect反射
  8. NSIS 去除字串中的汉字
  9. Python对字符数据进行清洗
  10. KNN算法介绍及源码实现