1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { watch } from "vue";
- import { string } from "vue-types";
- import { useCompData, useCreateChild } from ".";
- import { Image, Text } from "../../../basicUI";
- import { createUIComp } from "../../../defines/createUIComp";
- export const Component = createUIComp({
- props: {
- compId: string().isRequired,
- },
- setup(props) {
- const { children, value } = useCompData(props.compId);
- const createList = useCreateChild("list");
- watch(
- () => [value.columns],
- () => {
- const { columns } = value;
- const offset = columns - children.list.length;
- if (offset > 0) {
- children.list.push(...createList(offset));
- } else {
- children.list.splice(columns, offset * -1);
- }
- }
- );
- return () => {
- return (
- <div class="flex">
- <div class="flex-1 mx-0.3rem leading-2 relative z-10 w-0">
- <Text.Component compId={children.text} class="mt-0.2rem" />
- <div class="flex mt-0.2rem flex-wrap mr-0.8rem ml-0.2rem">
- {children.list.map((d: any, i: number) => (
- <Image.Component
- key={i}
- compId={d}
- class="-ml-0.2rem mb-0.2rem w-0.72rem h-0.72rem object-cover rounded-1/2 overflow-hidden"
- />
- ))}
- </div>
- </div>
- <div class="w-2.5rem relative pb-0.58rem mr-0.03rem">
- <Image.Component
- compId={children.img1}
- class="w-2.5rem h-4.17rem object-cover"
- />
- <div class="absolute bottom-0 right-1rem">
- <Image.Component
- compId={children.img2}
- class="w-3.17rem h-2.4rem object-cover"
- />
- </div>
- </div>
- </div>
- );
- };
- },
- });
|