forked from zhongyidian/super_video
125 lines
3.5 KiB
Vue
125 lines
3.5 KiB
Vue
<script lang="tsx" setup>
|
|
import { getBackgroundImage, IMAGE_PATHS } from '@/utils'
|
|
import { ImgButton } from '@/components/Button'
|
|
|
|
import { ref } from 'vue'
|
|
import { ProgressBar } from '@/components'
|
|
import { useRouter } from 'vue-router'
|
|
|
|
const router = useRouter()
|
|
|
|
const currentStep = ref(1)
|
|
|
|
const handleComplete = () => {
|
|
console.log('完成前置条件')
|
|
// 处理完成逻辑
|
|
}
|
|
|
|
const handleStepChange = (step: number) => {
|
|
console.log('步骤变化:', step)
|
|
// 处理步骤变化逻辑
|
|
}
|
|
|
|
const handleWorkClick = () => {
|
|
console.log('任务取景按钮点击')
|
|
// 处理任务取景按钮点击逻辑
|
|
router.push({ name: 'Work' })
|
|
}
|
|
const highlightShow = ref(true)
|
|
</script>
|
|
|
|
<template>
|
|
<div class="w-full h-full relative">
|
|
<!-- 背景图片-center -->
|
|
<div
|
|
class="absolute inset-0 bg-cover bg-center bg-no-repeat"
|
|
:style="{ backgroundImage: getBackgroundImage(IMAGE_PATHS.VLOG.BG_CENTER) }"
|
|
></div>
|
|
|
|
<!-- 背景图片 -->
|
|
<div
|
|
class="absolute inset-0 bg-cover bg-center bg-no-repeat"
|
|
:style="{ backgroundImage: getBackgroundImage(IMAGE_PATHS.VLOG.BG) }"
|
|
></div>
|
|
|
|
<!-- 标题 -->
|
|
<div class="absolute top-2 left-1/2 -translate-x-1/2">
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.TITLE" />
|
|
</div>
|
|
|
|
<!-- 任务取景按钮 -->
|
|
<div
|
|
class="absolute left-24 top-24"
|
|
:style="{ backgroundImage: getBackgroundImage(IMAGE_PATHS.VLOG.TASK_CAMERA) }"
|
|
>
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.TASK_BTN" @click="handleWorkClick" />
|
|
</div>
|
|
<!-- 中期拍摄底板 -->
|
|
<div v-if="highlightShow" class="absolute right-90 ml-[135px]" style="z-index: 998">
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.Midterm" />
|
|
</div>
|
|
<!-- 进度百分比 -->
|
|
<div v-if="highlightShow" class="absolute left-1/2 top-[12%] -translate-x-1/2">
|
|
<div class="flex">
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.Progress" />
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.Four" />
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.Zero" />
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.Percentage" />
|
|
</div>
|
|
</div>
|
|
<!-- 中期准备按钮文字 -->
|
|
<div
|
|
v-if="highlightShow"
|
|
class="absolute left-[21%] top-[9%] -translate-x-1/2"
|
|
style="z-index: 998"
|
|
>
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.MidtermEquipment" class="ml-[60px]" />
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.MidtermFraming" class="ml-[40px]" />
|
|
<ImgButton :image="IMAGE_PATHS.VLOG.MidtermShoot" class="ml-[20px]" />
|
|
</div>
|
|
<!-- 遮罩层 -->
|
|
<div class="Shadow" v-if="highlightShow">
|
|
<div>
|
|
<img src="" alt="" />
|
|
</div>
|
|
<img src="@/assets/images/midterm/引导遮罩.png" alt="" />
|
|
</div>
|
|
<!-- 叉 -->
|
|
<div
|
|
v-if="highlightShow"
|
|
class="absolute right-0 top-0"
|
|
style="z-index: 998; cursor: pointer"
|
|
@click="highlightShow = false"
|
|
>
|
|
<img src="@/assets/images/midterm/叉.png" alt="" />
|
|
</div>
|
|
<!-- 引导任务 -->
|
|
<!-- <ImgButton class="absolute right-24 bottom-24" :image="IMAGE_PATHS.VLOG.TASK_PERSON" /> -->
|
|
|
|
<div v-if="highlightShow" class="absolute bottom-0 w-full bright">
|
|
<ProgressBar
|
|
:current-step="currentStep"
|
|
@complete="handleComplete"
|
|
@step-change="handleStepChange"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<style lang="less" scopeds>
|
|
.Shadow {
|
|
width: 100%;
|
|
height: 100%;
|
|
|
|
img {
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 997 !important;
|
|
position: absolute;
|
|
}
|
|
}
|
|
|
|
.bright {
|
|
z-index: 999 !important;
|
|
}
|
|
</style>
|