component.tsx 819 B

12345678910111213141516171819202122232425262728
  1. import { string } from "vue-types";
  2. import { useCompData } from ".";
  3. import { useEditor } from "../../../../..";
  4. import { Image, Text } from "../../../basicUI";
  5. import { createUIComp } from "../../../defines/createUIComp";
  6. export const Component = createUIComp({
  7. props: {
  8. compId: string().isRequired,
  9. },
  10. setup(props) {
  11. const { designToNaturalSize } = useEditor().helper;
  12. const { value } = useCompData(props.compId);
  13. return () => (
  14. <div class="flex">
  15. <Image.Component
  16. style={{
  17. width: designToNaturalSize(value.imgSize[0]),
  18. height: designToNaturalSize(value.imgSize[1]),
  19. }}
  20. v-model={[value.img, "value"]}
  21. />
  22. <Text.Component class="flex-1 ml-0.1rem" v-model={[value.desc, "value"]} />
  23. </div>
  24. );
  25. },
  26. });