模型选择器
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 }}
 | 
					      p.text-gray-400 尝试可以应用于您的图像的不同风格样式 {{ imageCreate.models_show }}
 | 
				
			||||||
      div.flex.flex-wrap.gap-2.items-center.pt-2
 | 
					      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.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")
 | 
					            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}}
 | 
					            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;")
 | 
					      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="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")
 | 
					          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")
 | 
					            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;")
 | 
					                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")
 | 
					                  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 }}
 | 
					                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([
 | 
					const filters = ref([
 | 
				
			||||||
  { name:'None',      image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
					  { 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:'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:'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:'Colorpop4', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
				
			||||||
  { name:'',          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:'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:'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:'Colorpop4', 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:'Colorpop5', 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:'Colorpop6', 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:'Colorpop7', image:'https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png' },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const tasks = ref([
 | 
					const tasks = ref([
 | 
				
			||||||
@@ -263,12 +278,28 @@ const sizes = ref([
 | 
				
			|||||||
  { id:'image-dim-6', width:768, height:512 },
 | 
					  { id:'image-dim-6', width:768, height:512 },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const ModelsShow = (index) => {
 | 
					// 显示模型列表
 | 
				
			||||||
  console.log(index)
 | 
					const ModelsShow = (index, model) => {
 | 
				
			||||||
  imageCreate.value.filter_ctive = index
 | 
					  console.log(index, model)
 | 
				
			||||||
 | 
					  imageCreate.value.filter_ctive = index // 正在操作的坐标
 | 
				
			||||||
  imageCreate.value.models_show = !imageCreate.value.models_show
 | 
					  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>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<style>
 | 
					<style>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user