wxParseTable.vue 877 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <rich-text style="width: 100%" :nodes="nodes" :class="node.classStr"></rich-text>
  3. </template>
  4. <script>
  5. export default {
  6. name: 'wxParseTable',
  7. props: {
  8. node: {
  9. type: Object,
  10. default() {
  11. return {};
  12. },
  13. },
  14. },
  15. data() {
  16. return {
  17. nodes:[]
  18. };
  19. },
  20. mounted() {
  21. this.nodes=this.loadNode([this.node]);
  22. },
  23. methods: {
  24. loadNode(node) {
  25. let obj = [];
  26. for (let children of node) {
  27. if (children.node=='element') {
  28. let t = {
  29. name:children.tag,
  30. attrs: {
  31. class: children.classStr,
  32. style: children.styleStr,
  33. },
  34. children: children.nodes?this.loadNode(children.nodes):[]
  35. };
  36. obj.push(t)
  37. } else if(children.node=='text'){
  38. obj.push({
  39. type: 'text',
  40. text: children.text
  41. })
  42. }
  43. }
  44. return obj
  45. }
  46. }
  47. };
  48. </script>
  49. <style>
  50. @import url("./parse.scss");
  51. </style>