feat: 中期拍摄部分完成

This commit is contained in:
songjianyang committed 2025-09-17 02:39:19 +08:00
1 parent 55f45269bd
commit e747aedcc2
35 files changed
+170 -7

No files matched your search

+1
View File
@@ -12,6 +12,7 @@
"prepare": "husky"
},
"dependencies": {
"less": "^4.4.1",
"vue": "^3.5.18",
"vue-router": "^4.5.1"
},
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

+26 -7
View File
@@ -23,8 +23,11 @@
class="step-item"
:class="getStepStatus(index)"
>
<span class="step-text">{{ step.name }}</span>
<div class="step-dots">•••••</div>
<span class="step-text">
<img :src="step.name" alt="" />
<img :src="step.icon" alt="" />
<img class="step-ellipsis" src="@/assets/images/midterm/进度装饰(未完成.png" alt="" />
</span>
</div>
</div>
<div class="absolute top-0 left-40" v-else>
@@ -89,10 +92,18 @@ const handleComplete = () => {
// 步骤配置
const steps = [
{ name: '前期准备', icon: '📋' },
{ name: '中期拍摄', icon: '📹' },
{ name: '后期剪辑', icon: '🎬' },
{ name: '即可开启实战', icon: '⚡' }
{
name: '/src/assets/images/midterm/前期准备.png',
icon: '/src/assets/images/midterm/准备图标.png'
},
{
name: '/src/assets/images/midterm/中期拍摄.png',
icon: '/src/assets/images/midterm/拍摄图标.png'
},
{
name: '/src/assets/images/midterm/后期剪辑.png',
icon: '/src/assets/images/midterm/剪辑图标.png'
}
]
// 获取步骤状态
@@ -142,6 +153,7 @@ const getStepStatus = (stepIndex: number) => {
}
.step-item {
padding-left: 300px;
display: flex;
flex-direction: column;
align-items: center;
@@ -150,12 +162,19 @@ const getStepStatus = (stepIndex: number) => {
}
.step-text {
font-size: 26px;
/* font-size: 40px; */
color: white;
font-weight: bold;
text-align: center;
white-space: nowrap;
text-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
display: flex;
justify-content: center;
align-items: center;
}
.step-ellipsis {
padding-left: 17px;
}
.step-dots {
+18
View File
@@ -43,6 +43,24 @@ const routes: RouteRecordRaw[] = [
meta: {
title: '发现与记录'
}
},
//中期拍摄
{
path: '/midterm',
name: 'midterm',
component: () => import('@/views/midterm-shooting/midterm/index.vue'),
meta: {
title: '中期拍摄'
}
},
{
path: '/equipment',
name: 'equipment',
component: () => import('@/views/midterm-shooting/equipment/index.vue'),
meta: {
title: '设备准备'
}
}
]
+6
View File
@@ -153,5 +153,11 @@ export const IMAGE_PATHS = {
COMPLETE_BUTTON: 'components/进入-实战操作',
COMPLETE_BUTTON_DISABLED: 'components/完成前置-即可开启实战',
BACKGROUND: 'components/制作变焦镜-底板'
},
// 设备准备
EQUIPMENT: {
BG: 'equipment/设备准备-背景',
SELECT_THE_BUTTON: 'equipment/按钮选中-设备准备'
}
} as const
@@ -0,0 +1,26 @@
<script lang="ts" setup>
import { getBackgroundImage, IMAGE_PATHS } from '@/utils'
</script>
<template>
<div>
<!-- 背景图片 -->
<div
class="absolute inset-0 bg-cover bg-center bg-no-repeat equipment-bg"
:style="{ backgroundImage: getBackgroundImage(IMAGE_PATHS.EQUIPMENT.BG) }"
></div>
<!-- 设备准备按钮 -->
<div class="equipment-bt">
<button
:style="{ backgroundImage: getBackgroundImage(IMAGE_PATHS.EQUIPMENT.SELECT_THE_BUTTON) }"
></button>
</div>
</div>
</template>
<style lang="less" scoped>
// .equipment-bg{
// position: relative;
// .equipment-bt{
// position: absolute;
// }
// }
</style>
@@ -0,0 +1,93 @@
<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' })
}
</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 class="Shadow">
<!-- 进度百分比 -->
<div>
<img src="" alt="" />
</div>
<img src="@/assets/images/midterm/引导遮罩.png" alt="" />
</div>
<!-- 引导任务 -->
<!-- <ImgButton class="absolute right-24 bottom-24" :image="IMAGE_PATHS.VLOG.TASK_PERSON" /> -->
<div 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>