Markdown.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. // 重写mavon的flex样式来兼容IE
  23. import 'static/css/mavon-flex.css'
  24. export default {
  25. data: function(){
  26. return {
  27. content:'',
  28. html:'',
  29. configs: {
  30. }
  31. }
  32. },
  33. components: {
  34. mavonEditor
  35. },
  36. methods: {
  37. // 将图片上传到服务器,返回地址替换到md中
  38. $imgAdd(pos, $file){
  39. var formdata = new FormData();
  40. formdata.append('file', $file);
  41. // 这里没有服务器供大家尝试,可将下面上传接口替换为你自己的服务器接口
  42. this.$axios({
  43. url: '/common/upload',
  44. method: 'post',
  45. data: formdata,
  46. headers: { 'Content-Type': 'multipart/form-data' },
  47. }).then((url) => {
  48. this.$refs.md.$img2Url(pos, url);
  49. })
  50. },
  51. change(value, render){
  52. // render 为 markdown 解析后的结果
  53. this.html = render;
  54. },
  55. submit(){
  56. console.log(this.content);
  57. console.log(this.html);
  58. this.$message.success('提交成功!');
  59. }
  60. }
  61. }
  62. </script>
  63. <style scoped>
  64. .editor-btn{
  65. margin-top: 20px;
  66. }
  67. </style>