index.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import { InputNumber } from "ant-design-vue";
  2. import { createAttrsForm } from "../../../defines/createAttrsForm";
  3. import { createCompHooks } from "../../../defines/createCompHooks";
  4. import { createCompId } from "../../../defines/createCompId";
  5. export { Component } from "./component";
  6. const defaultData = [
  7. {
  8. label: `<p style="text-align:center;"><span style="color:hsl(0,0%,100%);">产品名称</span></p>`,
  9. content: "P190(注塑)",
  10. },
  11. {
  12. label: `<p style="text-align:center;"><span style="color:hsl(0,0%,100%);">产品规格</span></p>`,
  13. content: "52英寸",
  14. },
  15. {
  16. label: `<p style="text-align:center;"><span style="color:hsl(0,0%,100%);">产品厚度</span></p>`,
  17. content: "1.0mm+0.05mm",
  18. },
  19. {
  20. label: `<p style="text-align:center;"><span style="color:hsl(0,0%,100%);">产品底材</span></p>`,
  21. content: "鹿皮绒",
  22. },
  23. {
  24. label: `<p style="text-align:center;"><span style="color:hsl(0,0%,100%);">产品用途</span></p>`,
  25. content: "凉鞋、跟鞋、高更鞋、时尚休闲鞋等",
  26. },
  27. ];
  28. export const options = {
  29. name: "文字",
  30. thumbnail: require("./thumbnail.jpg"),
  31. };
  32. export const { createComp, useCompData, useCreateChild } = createCompHooks({
  33. layout: {
  34. size: [750, 420],
  35. },
  36. value: {
  37. columns: 5,
  38. gap: 20,
  39. width: 156,
  40. showBackground: true,
  41. },
  42. children: {
  43. list: (defaultOpts: any, length = defaultData.length) => {
  44. let i = -1;
  45. return Array.from({ length }, () => {
  46. i = i + 1;
  47. return {
  48. label: createCompId("Text", {
  49. value: defaultData[i]?.label,
  50. layout: {
  51. size: [160, 60],
  52. },
  53. }),
  54. content: createCompId("Text", {
  55. value: defaultData[i]?.content,
  56. layout: {
  57. size: [160, 60],
  58. },
  59. }),
  60. };
  61. });
  62. },
  63. },
  64. });
  65. export const Form = createAttrsForm([
  66. {
  67. label: "列表行数",
  68. dataIndex: "value.columns",
  69. component: InputNumber,
  70. },
  71. {
  72. label: "行间距",
  73. dataIndex: "value.gap",
  74. component: InputNumber,
  75. },
  76. {
  77. label: "标题宽度",
  78. dataIndex: "value.width",
  79. component: InputNumber,
  80. },
  81. {
  82. label: "标题背景色",
  83. dataIndex: "value.showBackground",
  84. component: "Switch",
  85. props: {
  86. size: "small",
  87. },
  88. },
  89. ]);