模型选择器
This commit is contained in:
		@@ -7,9 +7,14 @@ div(class="mt-[60px] grid grid-cols-1 lg:grid-cols-4 xl:grid-cols-5 text-white b
 | 
			
		||||
      p.text-gray-400 尝试可以应用于您的图像的不同风格样式 {{ imageCreate.models_show }}
 | 
			
		||||
      div.flex.flex-wrap.gap-2.items-center.pt-2
 | 
			
		||||
        div.cursor-pointer.select-none(v-for="(item, index) in filters" :key="item.name" class="w-5/16 h-20 bg-gray-500 rounded-lg")
 | 
			
		||||
          div.flex.justify-center.items-center.h-full(v-if="!item.name" @click="ModelsShow(index)")
 | 
			
		||||
          div.flex.justify-center.items-center.h-full(v-if="!item.name" @click="ModelsShow(index, item)")
 | 
			
		||||
            img.w-6.h-6(:src="IconPlusCircle" alt="PlusCircle")
 | 
			
		||||
          div.flex.items-end.h-full(v-else :style="`background-image: url(${item.image}); background-size: cover; background-position: center;`" @click="ModelsShow(index)")
 | 
			
		||||
          div.flex.items-end.h-full.border-purple-700.rounded-md(
 | 
			
		||||
            v-else
 | 
			
		||||
            :style="`background-image: url(${item.image}); background-size: cover; background-position: center;`"
 | 
			
		||||
            :class="{'border-2': new_task.model === item.name}"
 | 
			
		||||
            @click="ModelsChange(item)"
 | 
			
		||||
          )
 | 
			
		||||
            p(class="p-1") {{item.name}}
 | 
			
		||||
      // 风格滤镜列表(弹出/悬浮)
 | 
			
		||||
      div(v-show="imageCreate.models_show" class="absolute w-screen lg:w-[400px] bottom-2 flex flex-col" style="max-height: 80vh; left: 394px; top: 6vh;")
 | 
			
		||||
@@ -26,7 +31,12 @@ div(class="mt-[60px] grid grid-cols-1 lg:grid-cols-4 xl:grid-cols-5 text-white b
 | 
			
		||||
          div(class="h-32 lg:h-28")
 | 
			
		||||
          div(class="grid grid-cols-3 sm:grid-cols-4 lg:grid-cols-3 gap-2 p-2 pt-0")
 | 
			
		||||
            template(v-for="item in models" :key="item.name")
 | 
			
		||||
              button.h-24(class="transition-[transform,opacity] origin-center filter-button relative aspect-[6/5] duration-200 border-2 rounded-lg overflow-hidden  active:border-blue-300/50 border-transparent hover:border-high" aria-label="Select filter style: Colorpop" style="transition-delay: 10ms;")
 | 
			
		||||
              button.h-24(
 | 
			
		||||
                class="transition-[transform,opacity] origin-center filter-button relative aspect-[6/5] duration-200 border-2 rounded-lg overflow-hidden  active:border-blue-300/50 border-transparent hover:border-high"
 | 
			
		||||
                aria-label="Select filter style: Colorpop"
 | 
			
		||||
                style="transition-delay: 10ms;"
 | 
			
		||||
                @click="ModelsSelect(imageCreate.filter_ctive, item)"
 | 
			
		||||
              )
 | 
			
		||||
                span( style="box-sizing: border-box; display: block; overflow: hidden; width: initial; height: initial; background: none; opacity: 1; border: 0px; margin: 0px; padding: 0px; position: absolute; inset: 0px;")
 | 
			
		||||
                  img( alt="Colorpop" :src="item.image" decoding="async" data-nimg="fill" style="position: absolute; inset: 0px; box-sizing: border-box; padding: 0px; border: none; margin: auto; display: block; width: 0px; height: 0px; min-width: 100%; max-width: 100%; min-height: 100%; max-height: 100%; object-fit: cover;" sizes="100vw" srcset="https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 640w, https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 750w, https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 828w, https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 1080w, https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 1200w, https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 1920w, https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 2048w, https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png 3840w")
 | 
			
		||||
                div( class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 flex flex-col justify-end text-gray-100 text-left text-sm p-1") {{ item.name }}
 | 
			
		||||
@@ -225,13 +235,18 @@ const imageCreate = ref({
 | 
			
		||||
  // 私有会话
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
// 新任务表单
 | 
			
		||||
const new_task = ref({
 | 
			
		||||
  model: 'None',
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const filters = ref([
 | 
			
		||||
  { name:'None',      image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop1', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop2', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop3', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop3', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop4', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'',          image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
@@ -240,10 +255,10 @@ const models = ref([
 | 
			
		||||
  { name:'Colorpop1', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop2', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop3', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop3', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop3', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop3', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop3', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop4', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop5', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop6', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
  { name:'Colorpop7', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
const tasks = ref([
 | 
			
		||||
@@ -263,12 +278,28 @@ const sizes = ref([
 | 
			
		||||
  { id:'image-dim-6', width:768, height:512 },
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
const ModelsShow = (index) => {
 | 
			
		||||
  console.log(index)
 | 
			
		||||
  imageCreate.value.filter_ctive = index
 | 
			
		||||
// 显示模型列表
 | 
			
		||||
const ModelsShow = (index, model) => {
 | 
			
		||||
  console.log(index, model)
 | 
			
		||||
  imageCreate.value.filter_ctive = index // 正在操作的坐标
 | 
			
		||||
  imageCreate.value.models_show = !imageCreate.value.models_show
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 切换要使用的模型
 | 
			
		||||
const ModelsChange = (model) => {
 | 
			
		||||
  console.log(model)
 | 
			
		||||
  new_task.value.model = model.name
 | 
			
		||||
  imageCreate.value.models_show = false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 选择模型到常用模型
 | 
			
		||||
const ModelsSelect = (index, model) => {
 | 
			
		||||
  console.log(index, model)
 | 
			
		||||
  filters.value[index] = model
 | 
			
		||||
  new_task.value.model = model.name
 | 
			
		||||
  imageCreate.value.models_show = false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user