wxParseTable.vue 923 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <rich-text :nodes="nodes" :class="node.classStr" :style="'user-select:' + parseSelect"></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. inject: ['parseSelect'],
  16. data() {
  17. return {
  18. nodes:[]
  19. };
  20. },
  21. mounted() {
  22. this.nodes=this.loadNode([this.node]);
  23. },
  24. methods: {
  25. loadNode(node) {
  26. let obj = [];
  27. for (let children of node) {
  28. if (children.node=='element') {
  29. let t = {
  30. name:children.tag,
  31. attrs: {
  32. class: children.classStr,
  33. // style: children.styleStr,
  34. },
  35. children: children.nodes?this.loadNode(children.nodes):[]
  36. }
  37. obj.push(t)
  38. } else if(children.node=='text'){
  39. obj.push({
  40. type: 'text',
  41. text: children.text
  42. })
  43. }
  44. }
  45. return obj
  46. }
  47. }
  48. };
  49. </script>
  50. <style>
  51. @import url("../parse.css");
  52. </style>