tall小程序和时间轴结合在小程序中
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

182 lines
5.1 KiB

<template>
<view class="bg-white u-p-t-30 u-p-b-30">
<view class="flex items-center">
<view class="flex items-center justify-center rounded-full event-pic">
<image style="width: 25px; height: 25px" src="../../static/local_play1.png"></image>
</view>
<view class="title">我的LWBS</view>
</view>
<view v-for="(task, index) in tasks" :key="index">
<view>
<!-- 有子项目 -->
<view class="flex items-center justify-between item" v-if="index <= 2">
<view class="flex items-center">
<view class="text-white rounded-full firstTask" v-if="index === 0">
<view class="flex items-center justify-center">{{ index + 1 }}</view>
</view>
<view class="text-white rounded-full sencondTask" v-else-if="index === 1">
<view class="flex items-center justify-center">{{ index + 1 }}</view>
</view>
<view class="text-white rounded-full thirdTask" v-else-if="index === 2">
<view class="flex items-center justify-center">{{ index + 1 }}</view>
</view>
<view>
<view class="flex items-center">
<view class="title">{{ task.taskName }}</view>
<!-- 状态 -->
<view class="text-green-400 bg-green-100 rounded-full u-p-l-10 u-p-r-10 states">{{ task.state }}</view>
</view>
<view class="flex items-center text-gray-400 dates">
<view class="pr-2">{{ task.time }}</view>
<view>时长:{{ task.duration }}</view>
</view>
</view>
</view>
<!-- 箭头 -->
<u-icon name="arrow-right" color="#A4A6AB" size="14px" @click="openProjectItem(index)"></u-icon>
</view>
<!-- 没有子项目 -->
<view class="item" v-else>
<view class="flex items-center">
<view class="w-8 h-8 bg-white border rounded-full routine">
<view class="flex items-center justify-center">{{ index + 1 }}</view>
</view>
<view>
<view class="flex items-center">
<view class="title">{{ task.taskName }}</view>
<view class="px-2 text-green-400 bg-green-100 rounded-full states">{{ task.state }}</view>
</view>
<view class="flex items-center text-gray-400 dates">
<view class="pr-2">{{ task.time }}</view>
<view>时长:{{ task.duration }}</view>
</view>
</view>
</view>
</view>
<view v-if="isrotate === index">
这是子项目
<ProjectItem />
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
isrotate: -1,
tasks: [
{
taskName: '山西省三大中心建设',
state: '正在进行',
time: '05月31日 00:00',
duration: '365天',
},
{
taskName: '1号康复室',
state: '正在进行',
time: '01月31日 00:00',
duration: '727天',
},
{
taskName: '盐湖医院远程康复',
state: '正在进行',
time: '05月31日 00:00',
duration: '65天',
},
{
taskName: '山西省三大中心建设',
state: '正在进行',
time: '05月31日 00:00',
duration: '365天',
},
{
taskName: '1号康复室',
state: '正在进行',
time: '01月31日 00:00',
duration: '727天',
},
{
taskName: '盐湖医院远程康复',
state: '正在进行',
time: '05月31日 00:00',
duration: '65天',
},
],
};
},
methods: {
// 展开子项目
openProjectItem(index) {
if (this.isrotate === -1) {
this.isrotate = index;
} else {
this.isrotate = -1;
}
},
},
};
</script>
<style lang="scss" scoped>
.firstTask {
background: linear-gradient(45deg, #9000ff, #5e00ff);
width: 32px;
height: 32px;
margin-right: 16px;
line-height: 32px;
font-size: 16px;
text-align: center;
border: 1px solid #eee;
}
.sencondTask {
background: linear-gradient(45deg, #0081ff, #1cbbb4);
width: 32px;
height: 32px;
margin-right: 16px;
line-height: 32px;
font-size: 16px;
text-align: center;
border: 1px solid #eee;
}
.thirdTask {
background: linear-gradient(45deg, #39b54a, #8dc63f);
width: 32px;
height: 32px;
margin-right: 16px;
line-height: 32px;
font-size: 16px;
text-align: center;
border: 1px solid #eee;
}
.routine {
width: 32px;
height: 32px;
margin-right: 16px;
line-height: 32px;
font-size: 16px;
text-align: center;
border: 1px solid #eee;
}
.event-pic {
margin: 0 14px;
width: 36px;
height: 36px;
background: linear-gradient(45deg, #ff9700, #ed1c24);
}
.title {
font-size: 15px;
margin-right: 12px;
}
.dates {
font-size: 12px;
}
.states {
font-size: 10px;
}
.item {
border-bottom: 1px solid #fafafa;
height: 60px;
padding: 10px 16px;
}
</style>