Browse Source

新增成长,成长计划说明,成长任务详情静态页面

test
wzl 11 months ago
parent
commit
1f8cb3d53e
26 changed files with 621 additions and 11 deletions
  1. BIN
      src/assets/development/images/active.png
  2. BIN
      src/assets/development/images/banner1.png
  3. BIN
      src/assets/development/images/banner2.png
  4. BIN
      src/assets/development/images/leveTip.png
  5. BIN
      src/assets/development/images/leveTipGray.png
  6. BIN
      src/assets/development/images/leve_1.png
  7. BIN
      src/assets/development/images/leve_10.png
  8. BIN
      src/assets/development/images/leve_11.png
  9. BIN
      src/assets/development/images/leve_12.png
  10. BIN
      src/assets/development/images/leve_2.png
  11. BIN
      src/assets/development/images/leve_3.png
  12. BIN
      src/assets/development/images/leve_4.png
  13. BIN
      src/assets/development/images/leve_5.png
  14. BIN
      src/assets/development/images/leve_6.png
  15. BIN
      src/assets/development/images/leve_7.png
  16. BIN
      src/assets/development/images/leve_8.png
  17. BIN
      src/assets/development/images/leve_9.png
  18. BIN
      src/assets/development/images/task.png
  19. BIN
      src/assets/development/images/unactive.png
  20. +2
    -1
      src/components/NavBar.vue
  21. +12
    -1
      src/router/router.config.js
  22. +8
    -3
      src/views/Tabbar.vue
  23. +24
    -0
      src/views/development/include.scss
  24. +319
    -6
      src/views/development/index.vue
  25. +128
    -0
      src/views/development/planDescription.vue
  26. +128
    -0
      src/views/development/taskDetail.vue

BIN
src/assets/development/images/active.png View File

Before After
Width: 47  |  Height: 47  |  Size: 16KB

BIN
src/assets/development/images/banner1.png View File

Before After
Width: 638  |  Height: 415  |  Size: 83KB

BIN
src/assets/development/images/banner2.png View File

Before After
Width: 444  |  Height: 444  |  Size: 72KB

BIN
src/assets/development/images/leveTip.png View File

Before After
Width: 119  |  Height: 171  |  Size: 39KB

BIN
src/assets/development/images/leveTipGray.png View File

Before After
Width: 119  |  Height: 171  |  Size: 32KB

BIN
src/assets/development/images/leve_1.png View File

Before After
Width: 639  |  Height: 245  |  Size: 43KB

BIN
src/assets/development/images/leve_10.png View File

Before After
Width: 640  |  Height: 244  |  Size: 29KB

BIN
src/assets/development/images/leve_11.png View File

Before After
Width: 641  |  Height: 245  |  Size: 34KB

BIN
src/assets/development/images/leve_12.png View File

Before After
Width: 639  |  Height: 244  |  Size: 35KB

BIN
src/assets/development/images/leve_2.png View File

Before After
Width: 639  |  Height: 245  |  Size: 41KB

BIN
src/assets/development/images/leve_3.png View File

Before After
Width: 639  |  Height: 245  |  Size: 42KB

BIN
src/assets/development/images/leve_4.png View File

Before After
Width: 640  |  Height: 245  |  Size: 40KB

BIN
src/assets/development/images/leve_5.png View File

Before After
Width: 639  |  Height: 244  |  Size: 32KB

BIN
src/assets/development/images/leve_6.png View File

Before After
Width: 639  |  Height: 244  |  Size: 40KB

BIN
src/assets/development/images/leve_7.png View File

Before After
Width: 639  |  Height: 244  |  Size: 34KB

BIN
src/assets/development/images/leve_8.png View File

Before After
Width: 639  |  Height: 245  |  Size: 36KB

BIN
src/assets/development/images/leve_9.png View File

Before After
Width: 639  |  Height: 244  |  Size: 38KB

BIN
src/assets/development/images/task.png View File

Before After
Width: 545  |  Height: 605  |  Size: 56KB

BIN
src/assets/development/images/unactive.png View File

Before After
Width: 47  |  Height: 51  |  Size: 439B

+ 2
- 1
src/components/NavBar.vue View File

@@ -50,11 +50,12 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.nav-bar { .nav-bar {
position: absolute !important;
position: fixed !important;
left: 0; left: 0;
top: 0; top: 0;
height: 100px; height: 100px;
width: 100%; width: 100%;
z-index: 999;
} }


/* @import url(); 引入css类 */ /* @import url(); 引入css类 */


+ 12
- 1
src/router/router.config.js View File

@@ -15,7 +15,6 @@ export const constantRouterMap = [
{ {
path: '/Tabbar', path: '/Tabbar',
name: 'Index', name: 'Index',
redirect: '/index',
component: () => import('@/views/Tabbar.vue'), component: () => import('@/views/Tabbar.vue'),
children: [ children: [
{ {
@@ -50,6 +49,18 @@ export const constantRouterMap = [
} }
] ]
}, },
{
path: '/planDescription',
name: 'planDescription',
component: () => import('@/views/development/planDescription'),
meta: { title: '计划说明', keepAlive: false }
},
{
path: '/taskDetail',
name: 'taskDetail',
component: () => import('@/views/development/taskDetail'),
meta: { title: '任务详情', keepAlive: false }
},
{ {
path: '/familyNumber', path: '/familyNumber',
name: 'familyNumber', name: 'familyNumber',


+ 8
- 3
src/views/Tabbar.vue View File

@@ -1,8 +1,11 @@
<!-- --> <!-- -->
<template> <template>
<div> <div>
<div>nav组件</div>
<!-- nav 组件 -->
<div></div>
<!-- 页面 -->
<router-view /> <router-view />
<!-- tabbar 组件 -->
<TabBar /> <TabBar />
</div> </div>
</template> </template>
@@ -19,6 +22,8 @@ export default {
methods: {} methods: {}
}; };
</script> </script>
<style scoped>
/* @import url(); 引入css类 */
<style>
.van-tabbar{
z-index: 999 !important;
}
</style> </style>

+ 24
- 0
src/views/development/include.scss View File

@@ -0,0 +1,24 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.image {
width: 100%;
height: 100%;
img {
width: 100%;
height: 100%;
}
}
.gap {
padding-top: 40px;
}

.pageContent {
font-size: 34px;
padding: 30px;
padding-top: 100px;
padding-bottom: 150px;
box-sizing: border-box;
}

+ 319
- 6
src/views/development/index.vue View File

@@ -1,20 +1,333 @@
<!-- --> <!-- -->
<template> <template>
<div>
啊实打实的
<div class="pageContent devlopment">
<router-link to="/planDescription">
<div class="bannar radius">
<div class="image">
<img src="@/assets/development/images/banner1.png" alt="" />
</div>
<div class="button min-text">了解详情</div>
</div>
</router-link>
<div class="gap">当前任务</div>
<div class="task radius">
<div class="image">
<img src="@/assets/development/images/task.png" alt="" />
</div>
<div class="task-detail">
<div class="task-title">
<div>
<span>幸运熊计划LV</span>
<span>{{ task.level < 10 ? `0${task.level}` : task.level }}</span>
</div>
<div class="mid-text bold">{{ task.detail }}</div>
</div>
<div class="task-times">
<div class="task-time" v-for="(item, index) in task.taskList" :key="index">
<div class="task-time-info">
<div class="task-time-text">{{ item.title }}</div>
<div class="task-time-button min-text" v-if="item.status === 0">查看进度</div>
<div class="task-time-button min-text" v-else>上传打卡</div>
</div>
<div class="task-time-icon">
<div class="task-time-icon-active" v-if="item.status === 0">
<div class="image">
<img src="@/assets/development/images/active.png" alt="" />
</div>
</div>
<div class="task-time-icon-unactive" v-else>
<div class="image">
<img src="@/assets/development/images/unactive.png" alt="" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="levels">
<div
class="level"
v-for="(item, index) in levels"
:key="index"
:class="{
unlock: item.level === task.level + 1,
now: item.level === task.level,
active: item.level < task.level
}"
@click="toDetail(item, task)"
>
<div class="bg">
<div class="image">
<img :src="item.image" alt="" />
</div>
</div>
<div class="level-info">
<div class="level-info-level">
<div class="level-info-text">LV{{ item.level < 10 ? `0${item.level}` : item.level }}</div>
<div class="level-info-status">
{{
item.level > task.level + 1
? '未解锁'
: item.level === task.level + 1
? '可查看'
: item.level === task.level
? '进行中'
: '已完成'
}}
</div>
</div>
<div class="level-info-title">
<div class="level-info-title-text">{{ item.title }}</div>
<div class="level-info-title-desc">{{ item.desc }}</div>
</div>
</div>
<div class="tip">
<div class="image">
<img :src="active" alt="" v-if="item.level <= task.level + 1" />
<img :src="unactive" alt="" v-else />
</div>
</div>
</div>
</div>
</div> </div>
</template> </template>


<script> <script>
const active = require('@/assets/development/images/leveTip.png');
const unactive = require('@/assets/development/images/leveTipGray.png');

export default { export default {
data() { data() {
return {};
return {
active,
unactive,
task: {
level: 2,
detail: '学讲礼貌',
taskList: [
{
title: '格言朗读',
status: 0
},
{
title: '佩戴习惯',
status: 1
}
]
},
levels: [
{
level: 1,
title: '美好开始',
desc: '赢取启蒙熊',
image: require('@/assets/development/images/leve_1.png')
},
{
level: 2,
title: '学讲礼貌',
desc: '赢取启蒙熊',
image: require('@/assets/development/images/leve_2.png')
},
{
level: 3,
title: '学讲礼貌',
desc: '赢取启蒙熊',
image: require('@/assets/development/images/leve_3.png')
},
{
level: 4,
title: '学讲礼貌',
desc: '赢取启蒙熊',
image: require('@/assets/development/images/leve_4.png')
}
]
};
}, },
created() {}, created() {},
mounted() {}, mounted() {},
methods: {}
methods: {
toDetail(item, task) {
console.log(item);
console.log(task);
this.$router.push({
name: 'taskDetail',
params: {}
});
}
}
}; };
</script> </script>
<style scoped>
/* @import url(); 引入css类 */
<style scoped lang="scss">
@import './include.scss';
.min-text {
font-size: 25px;
font-weight: 400;
}
.mid-text {
font-size: 28px;
font-weight: 400;
}
.radius {
border-radius: 70px;
}
.bold {
font-weight: bold;
}
.devlopment {
padding-top: 30px;
font-weight: bold;

.bannar {
overflow: hidden;
position: relative;
width: 100%;
min-height: 200px;
.button {
position: absolute;
right: 5%;
bottom: 9%;
padding: 10px 20px;
color: white;
background-color: #000;
border-radius: 40px;
}
}

.task {
overflow: hidden;
position: relative;
width: 100%;
height: 750px;
background: #ff5f8b;

.image {
position: absolute;
left: 0;
top: 0;
z-index: 1;
}
.task-detail {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 2;

.task-title {
display: flex;
justify-content: space-between;
align-items: flex-end;
padding: 20px 60px;
.mid-text {
font-size: 30px;
}
}
.task-times {
display: flex;
flex-direction: column;
align-items: flex-end;
padding: 0px 60px;
padding-top: 20px;

.task-time {
display: flex;
align-items: flex-end;
margin-bottom: 20px;

.task-time-info {
display: flex;
flex-direction: column;
align-items: center;

.task-time-text {
letter-spacing: 5px;
}
.task-time-button {
padding: 0px 30px;
color: white;
background-color: #000;
border-radius: 40px;
}
}
.task-time-icon {
width: 50px;
height: 50px;
margin-left: 20px;

div {
width: 100%;
height: 100%;
}
.image {
position: relative;
}
}
}
}
}
}

.levels {
position: relative;
padding-top: 20px;
.level {
overflow: hidden;
position: relative;
width: 100%;
height: 300px;
color: white;
border-radius: 60px;
margin-top: 20px;
background: #b3b3b3;

.bg {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
}
.level-info {
position: absolute;
display: flex;
flex-direction: column;
justify-content: space-around;
height: 100%;
padding-left: 260px;
z-index: 3;

.level-info-level {
.level-info-text {
}
.level-info-status {
}
}
.level-info-title {
.level-info-title-text {
}
.level-info-title-desc {
}
}
}
.tip {
position: absolute;
right: 20px;
top: 20px;
width: 150px;
height: 215.5px;
z-index: 3;
}
}
.unlock {
background: #ff5f8b;
}
.now {
background: #8dc21f;
}
.active {
background: #179b3b;
}
}
}
</style> </style>

+ 128
- 0
src/views/development/planDescription.vue View File

@@ -0,0 +1,128 @@
<template>
<div class="pageContent planDescription">
<NavBar title="计划说明" @on-click-left="$router.back()"></NavBar>
<div class="bannar radius">
<div class="image">
<img src="@/assets/development/images/banner1.png" alt="" />
</div>
</div>
<div class="content">
<div class="gap"></div>
<div class="max-title">幸运熊计划</div>
<div class="max-title">健康同学美好未来成长计划</div>
<div class="gap"></div>
<div class="gap"></div>
<div class="mid-title">12周打卡挑战,建立坚实基础</div>
<div class="mid-title">每一次努力都值得被记录</div>
<div class="gap"></div>
<div class="text">
欢迎您和孩子加入“幸运熊计划”,这是健康同学美好未来成长
计划中的1号计划,旨在通过以德育心、以智慧心、以体强心、以美韧心、以劳健心让孩子得到全面发展,为期12周。我们精心设
定了10个涵盖德智体美劳五大领域的主题,每个主题都配备了量化的任务,通过具体的行动启发孩子们的认知,引导他们全面
理解并发展出德智体美劳的初步能力。
</div>
<div class="gap"></div>
<div class="mid-title">坚持完成这个计划,</div>
<div class="mid-title">您和您的孩子将获得:</div>
<div class="gap"></div>
<div class="text">完成不同主题后的奖品-12个特色幸运熊。 通向和谐亲子关系的钥匙- “情绪共生力”</div>
<div class="gap"></div>
<div class="mid-title">健康同学美好未来成长计划说明:</div>
<div class="gap"></div>
<div class="text">
我们的目标是帮助孩子们健康成长,心智成熟,全面发展。在以
德育心、以智慧心、以体强心、以美韧心、以劳健心的每一步中,
我们鼓励孩子发现自己的潜力,勇敢追逐梦想,并培养他们独 特的个性和创造力。我们希望孩子们学会适应这个不断变化的
世界,并找到幸福的秘诀。让我们从一号计划“幸运熊计划”的 开始,携手孩子,共同踏上通往美好未来的旅程。
</div>
<div class="gap"></div>
<div class="mid-title">“德智体美劳 ”目标说明</div>
<div class="gap"></div>
<div class="title">德育目标</div>
<div class="text">初期:学习基本的社交规范和礼仪。</div>
<div class="text">中期:培养同理心和团队合作精神。</div>
<div class="text">后期:发展责任感和领导力,培养全球视野,</div>
<div class="title">成为未来社会的领导者...</div>
<div class="gap"></div>
<div class="title">智育目标</div>
<div class="text">初期:掌握阅读和基础写作能力。</div>
<div class="text">中期:发展批判性思维和解决问题的能力。</div>
<div class="text">后期:学会独立学习和研究,</div>
<div class="title">成为终身学习者和创新思维者...</div>
<div class="gap"></div>
<div class="title">体育目标</div>
<div class="text">初期:增强体能和协调性。</div>
<div class="text">中期:提升特定运动技能。</div>
<div class="text">后期:理解团队合作与竞争的重要性,</div>
<div class="title">成为身体强健的积极参与者...</div>
<div class="gap"></div>
<div class="title">美育目标</div>
<div class="text">初期:培养审美观和艺术欣赏能力。</div>
<div class="text">中期:激发创造力和艺术表达能力。</div>
<div class="text">后期:尝试和了解不同文化的艺术形式,</div>
<div class="title">成为创造多元文化艺术的艺术家...</div>
<div class="gap"></div>
<div class="title">劳育目标</div>
<div class="text">初期:学习基本的自我服务能力。</div>
<div class="text">中期:发展手工艺和实践技能。</div>
<div class="text">后期:参与劳动服务,理解劳动的价值,</div>
<div class="title">成为拥有卓越技能和深厚社会责任感的匠人...</div>
<div class="gap"></div>
<div class="gap"></div>
<div class="min-title">
注意:孩子的成长并非线性过程,而是多方面发展的,可 能会有起伏和跳跃。重视每个孩子的独特性和他们成长
过程中的自然节奏至关重要。
</div>
</div>
</div>
</template>

<script>
import NavBar from '@/components/NavBar';
export default {
components: {
NavBar
},
data() {
return {};
}
};
</script>

<style scoped lang="scss">
@import './include.scss';

.max-title {
font-size: 50px;
font-weight: bold;
text-align: center;
}
.mid-title {
font-size: 30px;
color: #179b3b;
}
.min-title {
font-size: 26px;
color: #179b3b;
}
.title {
font-size: 24px;
color: #179b3b;
}
.text {
font-size: 24px;
color: gray;
}
.planDescription {
.bannar {
overflow: hidden;
position: relative;
width: 100%;
min-height: 200px;
}

.content {
padding: 0px 40px;
}
}
</style>

+ 128
- 0
src/views/development/taskDetail.vue View File

@@ -0,0 +1,128 @@
<template>
<div class="pageContent planDescription">
<NavBar title="任务详情" @on-click-left="$router.back()"></NavBar>
<div class="bannar radius">
<div class="image">
<img src="@/assets/development/images/banner2.png" alt="" />
</div>
</div>
<div class="content">
<div class="gap"></div>
<div class="max-title">离完成任务解锁奖励</div>
<div class="max-title">又近了一步!</div>
<div class="gap"></div>
<div class="text center">
你今天整体状态优秀,身体压力状态较小,能很好应对今 日工作生活中的挑战,请继续保持优秀状态。相信自己,
你一定可以实现你的目标!
</div>
<div class="gap"></div>
<div class="progress">
<div class="bg" width="100%"></div>
<div class="text" :style="`left:${progress}%;`">3</div>
</div>
<div class="gap"></div>
<div class="gap"></div>
<div class="mid-title center">任务即将达成</div>
<div class="gap"></div>
<div class="mid-title">目标</div>
<div class="text">美好开始</div>
<div class="gap"></div>
<div class="mid-title">目标解释</div>
<div class="text">
帮助孩子了解自己;认识什么叫“德智体美劳全面发展”; 和孩子一起找到通往幸福的魔法钥匙 ⸺ 情绪共生力。
</div>
<div class="gap"></div>
<div class="mid-title">任务</div>
<div class="text">1:帮助孩子阅读一封信和计划玩法拆解</div>
<div class="text">2:一起安装手办柜,放上熊,并合影</div>
</div>
</div>
</template>

<script>
import NavBar from '@/components/NavBar';
export default {
components: {
NavBar
},
data() {
return {
progress: 50
};
},
computed: {},
mounted() {},
methods: {}
};
</script>

<style scoped lang="scss">
@import './include.scss';
.max-title {
font-size: 50px;
font-weight: bold;
text-align: center;
}
.mid-title {
font-size: 30px;
}
.min-title {
font-size: 26px;
}
.title {
font-size: 24px;
}
.text {
font-size: 24px;
color: gray;
}
.center {
text-align: center;
}
.planDescription {
padding-top: 130px;

.bannar {
overflow: hidden;
position: relative;
width: 75%;
min-height: 200px;
margin: 0 auto;
}

.content {
width: 100%;
padding: 0px 40px;

.progress {
position: relative;
width: 100%;

.bg {
left: 0;
top: 0px;
height: 30px;
border-radius: 20px;
background: #29943a;
z-index: 1;
}
.text {
position: absolute;
top: 0px;
bottom: 0;
width: 60px;
height: 60px;
line-height: 60px;
color: #fff;
font-size: 34px;
text-align: center;
border-radius: 50%;
margin: auto;
margin-left: -30px;
background: black;
z-index: 2;
}
}
}
}
</style>

Loading…
Cancel
Save