wxParseTable.vue 1.1 KB

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