index.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { Dict_Imgs } from "@/dict";
  2. import { createAttrsForm } from "../../defines/createAttrsForm";
  3. import { createCompHooks } from "../../defines/createCompHooks";
  4. import { InputNumber, Switch } from "ant-design-vue";
  5. import { createColorOpts } from "../../defines/formOpts/createColorOpts";
  6. import Slider from "../../formItems/Slider";
  7. export { Component } from "./component";
  8. export const options = {
  9. name: "二次贝塞尔",
  10. thumbnail: require("@/modules/editor/assets/icons/image.svg"),
  11. };
  12. export const { createComp, useCompData } = createCompHooks({
  13. value: {
  14. lineColor: "black",
  15. lineWidth: 1,
  16. isFill: false,
  17. fillColor: "black",
  18. cp1: 0.5, //控制点1
  19. p1: 0, //顶点1的位置
  20. p2: 1, //顶点1的位置
  21. },
  22. layout: {
  23. size: [400, 400],
  24. },
  25. });
  26. export const Form = createAttrsForm([
  27. {
  28. label: "线宽",
  29. dataIndex: "value.lineWidth",
  30. component: InputNumber,
  31. },
  32. {
  33. label:"颜色",
  34. dataIndex: "value.lineColor",
  35. ...createColorOpts(),
  36. },
  37. {
  38. label: "是否填充",
  39. dataIndex: "value.isFill",
  40. component: "Switch",
  41. },
  42. {
  43. label:"填充颜色",
  44. dataIndex: "value.fillColor",
  45. ...createColorOpts(),
  46. isVisible: (value, data) => data?.value?.isFill == true,
  47. },
  48. {
  49. label:"左顶点",
  50. dataIndex: "value.p1",
  51. component: Slider,
  52. props: {
  53. defaultValue: 0,
  54. min: 0,
  55. max: 1,
  56. step: 0.01,
  57. },
  58. },
  59. {
  60. label:"右顶点",
  61. dataIndex: "value.p2",
  62. component: Slider,
  63. props: {
  64. defaultValue: 1,
  65. min: 0,
  66. max: 1,
  67. step: 0.01,
  68. },
  69. },
  70. {
  71. label:"控制点",
  72. dataIndex: "value.cp1",
  73. component: Slider,
  74. props: {
  75. defaultValue: 0.5,
  76. min: -0.5,
  77. max: 1.5,
  78. step: 0.01,
  79. },
  80. },
  81. ]);