LayoutOptarea.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <!-- 布局器 -->
  2. <script>
  3. import { baseUrl } from "@/common/biConfig";
  4. import $ from "jquery";
  5. export default {
  6. components: {},
  7. props: {
  8. pageInfo: {
  9. type: Object,
  10. required: true,
  11. },
  12. },
  13. render(h) {
  14. var json = this.pageInfo.body;
  15. var trs = [];
  16. for (var i = 1; true; i++) {
  17. var tr = json["tr" + i];
  18. if (!tr || tr == null) {
  19. break;
  20. }
  21. var tds = [];
  22. for (var j = 0; j < tr.length; j++) {
  23. var td = tr[j];
  24. tds.push(
  25. h("td", {
  26. attrs: {
  27. class: "laytd",
  28. height: td.height + "%",
  29. width: td.width + "%",
  30. colspan: td.colspan,
  31. rowspan: td.rowspan,
  32. },
  33. }, "xxx")
  34. );
  35. /**
  36. if(td.children){
  37. for(var k=0; k<td.children.length; k++){
  38. var comp = findTCompById(td.children[k]);
  39. var str = compStr(comp, false);
  40. ret = ret + str;
  41. cps.push(comp);
  42. }
  43. }
  44. */
  45. }
  46. trs.push(h('tr', {}, tds));
  47. }
  48. let table = h('table', {attrs:{border:"0", cellspacing:"0", cellpadding:"0", class:"r_layout", id:"layout_table"}}, [h('tbody', trs)]);
  49. return h("div", {attrs:{id:"optarea", class:"layout-center-body", align:"center"}}, [table]);
  50. },
  51. data() {
  52. return {};
  53. },
  54. mounted() {},
  55. computed: {},
  56. methods: {},
  57. watch: {},
  58. beforeMount() {},
  59. beforeDestroy() {},
  60. };
  61. </script>
  62. <style lang="less" scoped>
  63. @import "../../style/mixin";
  64. table.r_layout {
  65. border-collapse:collapse;
  66. table-layout:fixed;
  67. width:100%;
  68. height:100%;
  69. td.laytd {
  70. border: 1px solid #D3D3D3;
  71. text-align: left;
  72. vertical-align: top;
  73. background-color:#f0f3f4;
  74. min-height:100px;
  75. padding:5px;
  76. }
  77. }
  78. .layout-center-body {
  79. height: calc(100% - 44px);
  80. overflow: auto;
  81. }
  82. </style>