Markdown.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <div>
  3. <div class="crumbs">
  4. <el-breadcrumb separator="/">
  5. <el-breadcrumb-item><i class="el-icon-date"></i> 表单</el-breadcrumb-item>
  6. <el-breadcrumb-item>markdown</el-breadcrumb-item>
  7. </el-breadcrumb>
  8. </div>
  9. <div class="container">
  10. <div class="plugins-tips">
  11. mavonEditor:基于Vue的markdown编辑器。
  12. 访问地址:<a href="https://github.com/hinesboy/mavonEditor" target="_blank">mavonEditor</a>
  13. </div>
  14. <mavon-editor v-model="content" ref="md" @imgAdd="$imgAdd" @change="change" style="min-height: 600px"/>
  15. <el-button class="editor-btn" type="primary" @click="submit">提交</el-button>
  16. </div>
  17. </div>
  18. </template>
  19. <script>
  20. import { mavonEditor } from 'mavon-editor'
  21. import 'mavon-editor/dist/css/index.css'
  22. export default {
  23. data: function(){
  24. return {
  25. content:'',
  26. html:'',
  27. configs: {
  28. }
  29. }
  30. },
  31. components: {
  32. mavonEditor
  33. },
  34. methods: {
  35. // 将图片上传到服务器,返回地址替换到md中
  36. $imgAdd(pos, $file){
  37. var formdata = new FormData();
  38. formdata.append('file', $file);
  39. // 这里没有服务器供大家尝试,可将下面上传接口替换为你自己的服务器接口
  40. this.$axios({
  41. url: '/common/upload',
  42. method: 'post',
  43. data: formdata,
  44. headers: { 'Content-Type': 'multipart/form-data' },
  45. }).then((url) => {
  46. this.$refs.md.$img2Url(pos, url);
  47. })
  48. },
  49. change(value, render){
  50. // render 为 markdown 解析后的结果
  51. this.html = render;
  52. },
  53. submit(){
  54. console.log(this.content);
  55. console.log(this.html);
  56. this.$message.success('提交成功!');
  57. }
  58. }
  59. }
  60. </script>
  61. <style scoped>
  62. .editor-btn{
  63. margin-top: 20px;
  64. }
  65. </style>