import { cx } from "@linaria/core"; import { Button, Tooltip } from "ant-design-vue"; import { computed, reactive } from "vue"; import { IconAi, IconApplication, IconCombination, IconCube, IconImage, IconLayers, IconProfile, IconShape, IconText, IconTpl, IconVideo, } from "@/assets/icons"; import { defineUI } from "queenjs"; import { CompTree } from "../SliderRight/CompTree"; import AiText from "./AiText"; import Application from "./Application"; import Comp3d from "./Comp3d"; import CustomComps from "./CustomComps"; import Shapes from "./Shapes"; import { Sources } from "./Sources"; import Templates from "./Templates"; import Text from "./Text"; const tabs = [ { title: "模板", icon: IconTpl, component: Templates, }, { title: "组合", icon: IconCombination, component: CustomComps, props: { compType: "senior" }, }, { title: "组件", icon: IconApplication, component: Application, }, { title: "文字", icon: IconText, component: Text, }, { title: "图片", icon: IconImage, component: Sources, props: { sourceType: "Image", sourceFrom: "system" }, }, { title: "视频", icon: IconVideo, component: Sources, props: { sourceType: "Video", sourceFrom: "system" }, }, { title: "3D", icon: IconCube, component: Comp3d, }, { title: "形状", icon: IconShape, component: Shapes, }, { title: "我的", icon: IconProfile, content: [ { title: "图片", component: Sources, props: { sourceType: "Image", sourceFrom: "user" }, }, { title: "视频", component: Sources, props: { sourceType: "Video", sourceFrom: "user" }, }, { title: "组合", component: CustomComps, props: { compType: "user" }, }, ], }, { title: "AI", icon: IconAi, component: AiText, }, { title: "图层", icon: IconLayers, component: CompTree, }, ]; export default defineUI({ setup() { // @ts-ignore const state = reactive({ tabIndex: 8, compIndexs: [0, 0, 0, 0, 0, 0, 0, 0, 0], currentTab: computed(() => { return tabs[state.tabIndex]; }), currCompIndex: computed(() => { return state.compIndexs[state.tabIndex]; }), }); return () => { const { tabIndex, currentTab, currCompIndex } = state; const currComp = currentTab.component ? currentTab : currentTab.content?.[state.currCompIndex]; return (