2025-09-07 21:33:05 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="info-container">
|
2025-09-12 11:41:36 +08:00
|
|
|
|
<div class="title">时间轴</div>
|
2025-09-08 19:33:18 +08:00
|
|
|
|
<template v-for="(item, index) in data" :key="index">
|
2025-11-06 14:33:56 +08:00
|
|
|
|
<div :class="['item', { disabled: !item?.dkKsSj }]">
|
2025-09-08 19:33:18 +08:00
|
|
|
|
<div class="point"></div>
|
|
|
|
|
|
<div class="info-right">
|
2025-09-12 11:41:36 +08:00
|
|
|
|
<div class="name">{{ `第${item?.count}次打卡 开始` }}</div>
|
2025-11-06 14:33:56 +08:00
|
|
|
|
<div v-if="item?.dkKsSj" class="time">
|
|
|
|
|
|
打卡时间:<text>{{ handleTime(item?.dkKsSj) }}</text>
|
|
|
|
|
|
</div>
|
2025-09-07 21:33:05 +08:00
|
|
|
|
|
2025-09-12 11:41:36 +08:00
|
|
|
|
<div v-if="item?.imgUrlDkKsFj" class="image">
|
2025-11-06 14:33:56 +08:00
|
|
|
|
<van-image
|
|
|
|
|
|
width="80px"
|
|
|
|
|
|
height="90px"
|
|
|
|
|
|
:src="item?.imgUrlDkKsFj"
|
|
|
|
|
|
@click="onClickImg(item?.imgUrlDkKsFj)"
|
|
|
|
|
|
style="flex: 1"
|
|
|
|
|
|
>
|
2025-09-12 11:41:36 +08:00
|
|
|
|
<template v-slot:loading>
|
|
|
|
|
|
<van-loading type="spinner" size="20" />
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</van-image>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <div class="address">-->
|
|
|
|
|
|
<!-- <van-icon name="location-o" color="#1DB1FF" />-->
|
|
|
|
|
|
<!-- <div class="name">四川省成都市</div>-->
|
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2025-11-06 14:33:56 +08:00
|
|
|
|
<div :class="['item', { disabled: !item?.dkJsSj }]">
|
2025-09-12 11:41:36 +08:00
|
|
|
|
<div class="point"></div>
|
|
|
|
|
|
<div class="info-right">
|
|
|
|
|
|
<div class="name">{{ `第${item?.count}次打卡 离开` }}</div>
|
2025-11-06 14:33:56 +08:00
|
|
|
|
<div v-if="item?.dkJsSj" class="time">
|
|
|
|
|
|
打卡时间:<text>{{ handleTime(item?.dkJsSj) }}</text>
|
|
|
|
|
|
</div>
|
2025-09-12 11:41:36 +08:00
|
|
|
|
|
|
|
|
|
|
<div v-if="item?.imgUrlDkJsFj" class="image">
|
2025-11-06 14:33:56 +08:00
|
|
|
|
<van-image
|
|
|
|
|
|
width="80px"
|
|
|
|
|
|
height="95px"
|
|
|
|
|
|
:src="item?.imgUrlDkJsFj"
|
|
|
|
|
|
@click="onClickImg(item?.imgUrlDkJsFj)"
|
|
|
|
|
|
style="flex: 1"
|
|
|
|
|
|
>
|
2025-09-08 19:33:18 +08:00
|
|
|
|
<template v-slot:loading>
|
|
|
|
|
|
<van-loading type="spinner" size="20" />
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</van-image>
|
|
|
|
|
|
</div>
|
2025-09-07 21:33:05 +08:00
|
|
|
|
|
2025-09-08 19:33:18 +08:00
|
|
|
|
<!-- <div class="address">-->
|
|
|
|
|
|
<!-- <van-icon name="location-o" color="#1DB1FF" />-->
|
|
|
|
|
|
<!-- <div class="name">四川省成都市</div>-->
|
|
|
|
|
|
<!-- </div>-->
|
2025-09-07 21:33:05 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2025-09-08 19:33:18 +08:00
|
|
|
|
</template>
|
2025-09-07 21:33:05 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script setup>
|
2025-11-06 14:33:56 +08:00
|
|
|
|
import { ImagePreview } from "vant";
|
2025-09-08 19:33:18 +08:00
|
|
|
|
|
2025-09-07 21:33:05 +08:00
|
|
|
|
const props = defineProps({
|
|
|
|
|
|
data: {
|
|
|
|
|
|
type: Array,
|
2025-11-06 14:33:56 +08:00
|
|
|
|
default: [],
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
2025-09-08 19:33:18 +08:00
|
|
|
|
|
|
|
|
|
|
//预览图片
|
|
|
|
|
|
function onClickImg(url) {
|
|
|
|
|
|
ImagePreview([url]);
|
|
|
|
|
|
}
|
2025-09-12 11:41:36 +08:00
|
|
|
|
|
|
|
|
|
|
const handleTime = (time) => {
|
2025-11-06 14:33:56 +08:00
|
|
|
|
if (time) return time?.split(" ")[1];
|
|
|
|
|
|
};
|
2025-09-07 21:33:05 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.info-container {
|
|
|
|
|
|
padding: 0 2.67vw;
|
|
|
|
|
|
margin-top: 4vw;
|
|
|
|
|
|
|
2025-09-12 11:41:36 +08:00
|
|
|
|
.title {
|
|
|
|
|
|
color: #707070;
|
|
|
|
|
|
font-size: 3.73vw;
|
|
|
|
|
|
margin-bottom: 4vw;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-09-07 21:33:05 +08:00
|
|
|
|
.item {
|
|
|
|
|
|
color: #666;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-content: center;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
height: auto;
|
2025-11-06 14:33:56 +08:00
|
|
|
|
border-left: 0.53vw dashed #1db1ff;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
max-height: 46.93vw;
|
2025-11-06 14:33:56 +08:00
|
|
|
|
padding-bottom: 4vw;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
|
|
|
|
|
|
.point {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
width: 3.2vw;
|
|
|
|
|
|
height: 3.2vw;
|
2025-11-06 14:33:56 +08:00
|
|
|
|
background: #1db1ff;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
left: -1.665vw;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.info-right {
|
|
|
|
|
|
margin-left: 5.33vw;
|
|
|
|
|
|
font-family: PingFang HK, PingFang HK;
|
2025-09-12 11:41:36 +08:00
|
|
|
|
margin-top: -1.33vw;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
.name {
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
font-size: 3.73vw;
|
|
|
|
|
|
color: #707070;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.image {
|
|
|
|
|
|
margin-top: 2.13vw;
|
|
|
|
|
|
width: 33.87vw;
|
2025-11-06 14:33:56 +08:00
|
|
|
|
// height: 18.67vw;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.time {
|
|
|
|
|
|
margin-top: 2.13vw;
|
2025-09-12 11:41:36 +08:00
|
|
|
|
font-size: 3.73vw;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
|
|
|
|
|
|
text {
|
2025-11-06 14:33:56 +08:00
|
|
|
|
color: #0386fb;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.address {
|
|
|
|
|
|
margin-top: 2.13vw;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2025-11-06 14:33:56 +08:00
|
|
|
|
color: #75787f;
|
2025-09-07 21:33:05 +08:00
|
|
|
|
|
|
|
|
|
|
div {
|
|
|
|
|
|
font-size: 2.67vw;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.name {
|
|
|
|
|
|
margin-left: 1.33vw;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-09-12 11:41:36 +08:00
|
|
|
|
|
|
|
|
|
|
.disabled {
|
2025-11-06 14:33:56 +08:00
|
|
|
|
border-left: 0.53vw dashed #ededed !important;
|
2025-09-12 11:41:36 +08:00
|
|
|
|
|
|
|
|
|
|
.point {
|
2025-11-06 14:33:56 +08:00
|
|
|
|
background: #ededed !important;
|
2025-09-12 11:41:36 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-09-07 21:33:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
</style>
|