hldy_app_mini/pages/NursingNew/component/index.vue

1186 lines
25 KiB
Vue
Raw Normal View History

2025-11-05 15:59:48 +08:00
<template>
<view class="index-content-other" :style="transition?{opacity: `1`}:{opacity: `0`}">
<view class="right-container-title-nav">
2025-12-25 17:30:31 +08:00
<view class="title-card">
<view class="card-top">
<view class="card-top-left">
50
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
<view class="card-spec">
<view class="line">
</view>
<view class="line-gray">
80
</view>
</view>
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/help.png" />
<view class="bottom-font">
护理
</view>
</view>
</view>
<view class="title-card">
<view class="card-top">
<view class="card-top-left">
32
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
<view class="card-spec">
<view class="line">
</view>
<view class="line-gray">
60
</view>
</view>
2025-12-26 10:03:50 +08:00
2025-12-25 17:30:31 +08:00
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/doctor.png" />
<view class="bottom-font">
医疗
</view>
</view>
</view>
<view class="title-card">
<view class="card-top">
<view class="card-top-left">
65
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
<view class="card-spec">
<view class="line">
</view>
<view class="line-gray">
70
</view>
</view>
2025-12-26 10:03:50 +08:00
2025-12-25 17:30:31 +08:00
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/work.png" />
<view class="bottom-font">
行政
</view>
</view>
</view>
2026-01-05 09:29:35 +08:00
<view class="title-card-right">
<view class="card-top">
<view class="card-top-left">
65
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
<view class="card-spec">
<view class="line">
</view>
<view class="line-gray">
70
</view>
</view>
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/work.png" />
<view class="bottom-font">
行政
</view>
</view>
</view>
<!-- <view class="title-time">
2025-12-25 17:30:31 +08:00
<view class="time-title">
{{ currentTime }}
</view>
<view class="time-date">
{{ fullDate }}
</view>
2025-11-05 15:59:48 +08:00
<view class="right-container-tem">
<image class="right-container-tem-img" src="/static/index/newindex/wendu/0.png" />
2025-12-26 10:03:50 +08:00
<text
class="right-container-tem-text">{{ (uni.getStorageSync('NUall').humidDeviceList && uni.getStorageSync('NUall').humidDeviceList[0])? uni.getStorageSync('NUall').humidDeviceList[0].temperature: '-' }}°C</text>
2025-11-05 15:59:48 +08:00
<image class="right-container-tem-img" src="/static/index/newindex/wendu/1.png" />
2025-12-26 10:03:50 +08:00
<text
class="right-container-tem-text">{{ (uni.getStorageSync('NUall').humidDeviceList && uni.getStorageSync('NUall').humidDeviceList[0])? uni.getStorageSync('NUall').humidDeviceList[0].humidity: '-' }}%</text>
2025-11-05 15:59:48 +08:00
</view>
2026-01-05 09:29:35 +08:00
</view> -->
2025-11-05 15:59:48 +08:00
</view>
<view class="photo-father">
<view class="juzhong" style="margin-left: -30rpx;">
<donghua :width="`1300rpx`" :height="`900rpx`" :links="blueArray" :playing="photoplay" :loop="true"
:interval="120" />
</view>
<view class="juzhong" style="z-index: 2;margin-top: 80rpx;">
<donghua :width="`800rpx`" :height="`500rpx`" :links="bluesmallArray" :playing="photoplay" :loop="true"
:interval="120" />
</view>
<view class="weight-time">
2025-12-30 08:40:09 +08:00
<view class="" v-if="indexmessage?.startTime">
{{ indexmessage?.startTime.slice(11, 16) }}
-
{{ indexmessage?.endTime.slice(11, 16) }}
</view>
<view class="" v-show="!indexmessage?.startTime">
暂无数据
</view>
2026-01-05 09:29:35 +08:00
2025-12-30 08:40:09 +08:00
<view class="pao-father" v-show="indexmessage?.startTime">
2025-11-05 15:59:48 +08:00
<image class="pao-img" :src="`/static/index/newindex/states/pao.png`" />
<view style="z-index: 1;">
待执行
</view>
</view>
</view>
2026-01-05 09:29:35 +08:00
<image class="big-img"
:src="indexmessage?.previewFile? 'https://www.focusnu.com/media/upFiles/' + indexmessage?.previewFile: `/static/index/newindex/wendu/2.png`" />
2025-11-05 15:59:48 +08:00
<view style="display: flex;align-items: center;">
2025-12-30 08:40:09 +08:00
<view class="server-name" v-if="indexmessage?.startTime">
{{ indexmessage?.directiveName }}
2025-11-05 15:59:48 +08:00
</view>
</view>
<view style="display: flex;margin-top: 40rpx;">
2025-12-25 17:30:31 +08:00
<view style="width: 240rpx;height: 90rpx;margin-right: 40rpx;">
2025-12-30 08:40:09 +08:00
<view class="start-button" v-show="indexmessage?.startTime">
2025-11-05 15:59:48 +08:00
开始服务
</view>
</view>
2025-12-25 17:30:31 +08:00
<view style="width: 240rpx;height: 90rpx;">
2025-12-30 08:40:09 +08:00
<view class="end-button" v-show="indexmessage?.startTime">
2025-11-05 15:59:48 +08:00
结束服务
</view>
</view>
</view>
</view>
2025-12-30 08:40:09 +08:00
<view class="left-menu" v-show="indexmessage?.startTime">
2025-12-25 17:30:31 +08:00
<view v-for="(item,index) in leftArray" :key="index" style="margin: 30rpx 0;">
<view class="left-ball">
2025-11-05 15:59:48 +08:00
<image class="left-menu-img" :src="item" />
</view>
</view>
</view>
2025-12-30 08:40:09 +08:00
<view class="right-menu" v-show="indexmessage?.startTime">
2025-11-05 15:59:48 +08:00
<view class="zhezhao-top" @click="scrollTop -= 115"></view>
<view class="zhezhao-bottom" @click="scrollTop += 115"></view>
<image class="top-img" :src="`/static/index/newindex/rightmenu/top.png`"
@click="scrollTop>0? scrollTop -= 115:scrollTop=0" />
<scroll-view scroll-y="true" class="right-scroll" :scroll-top="scrollTop" @scroll="onScroll">
2025-12-25 17:30:31 +08:00
<view style="height: 20rpx;">
2025-11-05 15:59:48 +08:00
</view>
2025-12-25 17:30:31 +08:00
<view v-for="(item,index) in rightMenu" style="margin: 20rpx 0;width: 110rpx;margin-left: 20rpx;">
<view class="white-circle">
2025-11-05 15:59:48 +08:00
<image class="right-menu-img" :src="item.url" />
<view class="right-menu-name">
{{ item.name }}
</view>
</view>
</view>
<view style="height: 30rpx;">
</view>
</scroll-view>
<image class="top-img" :src="`/static/index/newindex/rightmenu/bottom.png`"
@click="scrollTop > (55* rightMenu.length) ? scrollTop = (55* rightMenu.length) : scrollTop += 115 " />
</view>
</view>
2025-12-25 17:30:31 +08:00
<view class="index-content-right" :style="transition?{opacity: `1`}:{opacity: `0`}">
<view class="right-top">
2025-12-26 10:03:50 +08:00
<view class="top-title">
护理单元
</view>
<scroll-view class="top-list" scroll-y>
2025-12-26 15:15:35 +08:00
<view class="list-view" :style="menutarget===index?{borderColor:`#8DD6FF`,backgroundColor:`#F7F7F9`}:{}"
2025-12-26 10:03:50 +08:00
v-for="(item,index) in filteredMenu(0)" :key="index" @click="clickmenu(index)">
2025-12-26 15:15:35 +08:00
<image class="list-img"
:src="`/static/index/newindex/leftmenu/NU${item.elderInfo?.name?`blue`:`white`}.png`" />
2025-12-26 10:03:50 +08:00
<view class="">
<view class="first-line">
<view style="font-size: 1.2vw;">
2025-12-26 15:15:35 +08:00
{{ item.nuName }}
2025-12-26 10:03:50 +08:00
</view>
<view class="first-line-second">
{{ item.elderInfo?.name?`入住`:`空闲` }}
</view>
</view>
<view class="second-line">
2025-12-26 15:15:35 +08:00
NUID{{ item.nuId }}
2025-12-26 10:03:50 +08:00
</view>
</view>
</view>
</scroll-view>
2025-12-25 17:30:31 +08:00
</view>
<view class="right-bottom">
<view class="bottom-title">
2025-12-26 15:15:35 +08:00
<image class="bottom-carmera" src="/static/index/newindex/leftmenu/carmera.png" @click="gotolook" />
2025-12-25 17:30:31 +08:00
<view class="blue-button">
长者标签
</view>
2025-12-26 10:03:50 +08:00
2025-12-25 17:30:31 +08:00
</view>
2025-12-30 08:40:09 +08:00
<image class="big-older"
:src="`/static/index/newindex/leftmenu/${uni.getStorageSync('NUall').elderInfo?.name?`older`:`nopeople`}.png`" />
2025-12-25 17:30:31 +08:00
<view class="name-weight">
2025-12-26 15:15:35 +08:00
{{ uni.getStorageSync('NUall').elderInfo?.name ? uni.getStorageSync('NUall').elderInfo?.name:`暂无长者` }}
2025-12-25 17:30:31 +08:00
</view>
2025-12-26 15:15:35 +08:00
<view class="message-view" v-if="uni.getStorageSync('NUall').elderInfo?.name">
2025-12-26 10:03:50 +08:00
{{ uni.getStorageSync('NUall').elderInfo?.sex }}
<view class="message-shu"></view>
<view style="font-weight: 600;">
{{ calcAge(uni.getStorageSync('NUall').elderInfo?.dateOfBirth) }}
</view>
<view class="message-shu"></view>
<image class="message-img" :src="`/static/index/newindex/leftmenu/time.png`" />
{{ uni.getStorageSync('NUall').elderInfo?.startTime }}
</view>
2025-12-26 15:15:35 +08:00
<view class="message-bottom" v-if="uni.getStorageSync('NUall').elderInfo?.name">
2025-12-26 10:03:50 +08:00
<view class="bottom-tags" v-for="(item,index) in tagarray" :key="index">
{{ item }}
</view>
</view>
2025-12-25 17:30:31 +08:00
</view>
</view>
2025-12-26 15:15:35 +08:00
<view class="fixed-card" :style="openleft?{}:{right:`-33vw`}">
<view class="fixed-card-left">
<image class="card-left-img" :src="`/static/index/newindex/wendu/2.png`" />
<view class="">
库存盘点
</view>
</view>
<view>
<view class="big-time">
10:00 - 10:10
</view>
<view class="icon-people">
<image class="people-img" src="/static/index/newindex/leftmenu/iconleft.png" />
单人执行
<image style="margin-left: 1vw;" class="people-img"
src="/static/index/newindex/leftmenu/iconright.png" />
王金福
</view>
<view style="color: #555555;">
业务单号P10120251010001
</view>
<view class="icon-button">
<view class="button-left">
开始服务
</view>
<view class="button-right">
结束服务
</view>
</view>
</view>
<view class="left-open" @click="openleft = !openleft">
<image :style="openleft?{}:{transform: `rotate(180deg)`}" class="open-img"
src="/static/index/newindex/leftmenu/openleft.png" />
</view>
</view>
2025-11-05 15:59:48 +08:00
</template>
<script setup lang="ts">
2025-12-25 17:30:31 +08:00
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch } from 'vue';
2025-12-26 10:03:50 +08:00
import { queryPadPageList } from '@/pages/watch/api/lunpan.js'
2025-12-30 08:40:09 +08:00
import { queryWorkCareList } from './api.js'
2025-11-05 15:59:48 +08:00
const props = defineProps({
isShow: {
type: Boolean,
required: true,
},
2025-12-25 14:37:43 +08:00
2025-11-05 15:59:48 +08:00
});
2025-12-26 10:03:50 +08:00
const leftMenuArray = ref([]);
2025-12-26 15:15:35 +08:00
const openleft = ref(false)
2025-12-26 10:03:50 +08:00
const menutarget = ref(0)
2026-01-05 09:29:43 +08:00
const emit = defineEmits(['swip'])
2025-12-26 10:03:50 +08:00
const clickmenu = (index : number) => {
menutarget.value = index
let data = filteredMenu(0)[index]
uni.setStorageSync('nuId', data.nuId);
uni.setStorageSync('nuName', data.nuName);
uni.setStorageSync('elderId', data.elderInfo ? data.elderInfo?.id : null);
uni.setStorageSync('NUall', data);
2026-01-05 09:29:43 +08:00
getgif();
emit('swip')
2025-12-26 10:03:50 +08:00
}
const tagarray = ["市医保", "半失能", "正常计费"]
2025-11-05 15:59:48 +08:00
2025-12-26 10:03:50 +08:00
function calcAge(dateOfBirth : string) {
2025-12-26 15:15:35 +08:00
const birthYear = parseInt(dateOfBirth?.slice(0, 4), 10);
2025-12-26 10:03:50 +08:00
const currentYear = new Date().getFullYear();
return currentYear - birthYear;
}
2025-11-05 15:59:48 +08:00
const typeNow = ref(-1);
const photoplay = ref(false)
const downArray = ref()
const scrollTop = ref(0);
2025-12-25 14:37:43 +08:00
2025-11-05 15:59:48 +08:00
function onScroll(e) {
// e.detail.scrollTop 就是当前滚动距离
scrollTop.value = e.detail.scrollTop
}
// 通用的生成函数
function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
return Array.from({ length: count }, (_, i) => {
const idx = pad
? String(i + startIndex).padStart(2, '0')
: i + startIndex
return `${base}/${prefix}${idx}.${ext}`
})
}
const rightMenu = ref([
{
url: "/static/index/newindex/rightmenu/0.png",
name: '重点追踪'
},
{
url: "/static/index/newindex/rightmenu/1.png",
name: '转单执行'
},
{
url: "/static/index/newindex/rightmenu/2.png",
name: '协助执行'
},
])
2025-12-26 15:15:35 +08:00
2025-11-05 15:59:48 +08:00
const leftArray = ref(genPaths(
'/static/index/newindex/leftmenu',
2025-12-25 17:30:31 +08:00
'left',
5, // 张数
2025-11-05 15:59:48 +08:00
'png',
0, // 起始索引
false // 不补零
))
const huliArray = ref(genPaths(
'/static/index/newindex/huli',
'care',
9, // 张数
'png',
0, // 起始索引
false // 不补零
))
const base = genPaths(
'/static/index/newindex/curve',
'curve_',
9,
'png',
1,
false
)
const blueArray = ref([
...base,
...[...base].reverse() // 先拷贝一份再反转,避免修改原 base
])
const basesmall = genPaths(
'/static/index/newindex/curve',
'breathe_',
9,
'png',
1,
false
)
const bluesmallArray = ref([
...basesmall,
...[...basesmall].reverse() // 先拷贝一份再反转,避免修改原 base
])
// 使用watch监听isShow变化
const transition = ref(false);
watch(
() => props.isShow,
(newVal, oldVal) => {
// 当旧值为false新值为true时延迟0.2秒调用方法
if (!oldVal && newVal) {
2026-01-05 09:29:43 +08:00
console.log(oldVal && newVal)
2025-11-05 15:59:48 +08:00
transition.value = false;
// console.log("????",transition.value)
setTimeout(() => {
transition.value = true;
2025-12-26 17:31:07 +08:00
// console.log("看看", uni.getStorageSync('NUall'))
2025-11-05 15:59:48 +08:00
}, 50)
} else {
transition.value = false;
}
}
)
const name = ref("");
// 定义响应式数据现在时间
2025-12-25 17:30:31 +08:00
const currentTime = ref('');
const fullDate = ref('');
const weekDay = ref('');
let timerId = null;
// 更新时间、日期和星期的方法
const updateTime = () => {
const now = new Date();
// 获取当前时间的时分
const hours = now.getHours().toString().padStart(2, '0');
const minutes = now.getMinutes().toString().padStart(2, '0');
currentTime.value = `${hours}:${minutes}`;
// 获取星期几
const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
const week = weekDays[now.getDay()];
weekDay.value = week;
2025-12-26 10:03:50 +08:00
2025-12-25 17:30:31 +08:00
// 获取完整的日期(年/月/日)
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
const day = now.getDate().toString().padStart(2, '0');
fullDate.value = `${year}.${month}.${day} ${weekDay.value}`;
};
2025-11-05 15:59:48 +08:00
onMounted(() => {
name.value = uni.getStorageSync('realname')
typeNow.value = 0;
2025-12-25 17:30:31 +08:00
timerId = updateTime();
// 每秒更新一次时间
setInterval(updateTime, 1000);
2025-11-05 15:59:48 +08:00
photoplay.value = true;
2025-12-30 08:40:09 +08:00
getmenu();
2026-01-05 09:29:43 +08:00
transition.value = false;
// console.log("????",transition.value)
setTimeout(() => {
transition.value = true;
// console.log("看看", uni.getStorageSync('NUall'))
}, 50)
2025-11-05 15:59:48 +08:00
})
2026-01-05 09:29:43 +08:00
2025-12-26 10:03:50 +08:00
const filteredMenu = (index : number) => {
return leftMenuArray.value.filter(item => Number(item.areaFlag) - 1 == index);
}
const getmenu = () => {
queryPadPageList().then((res => {
2026-01-05 09:29:43 +08:00
console.log(res.result)
2025-12-26 10:03:50 +08:00
leftMenuArray.value = res.result.records;
2025-12-26 15:15:35 +08:00
filteredMenu(0).forEach((element : any, index : number) => {
if (element.nuId === uni.getStorageSync('NUall').nuId) {
2025-12-26 10:03:50 +08:00
menutarget.value = index
2026-01-05 09:29:43 +08:00
clickmenu(menutarget.value)
2025-12-26 10:03:50 +08:00
}
})
}))
}
2025-12-30 08:40:09 +08:00
const indexmessage = ref({});
const getgif = () => {
let data = {
nuId: uni.getStorageSync('NUall').nuId,
employeeId: uni.getStorageSync('userInfo').employessId,
workType: 5
}
queryWorkCareList(data).then((res : any) => {
// console.log("看看图",res.result.records[0])
indexmessage.value = res.result.records[0]
// console.log("看看图",'https://www.focusnu.com/media/upFiles/'+indexmessage.value.previewFile)
})
}
2025-11-05 15:59:48 +08:00
const lanjie = ref(false);
2025-12-26 15:15:35 +08:00
const gotolook = () => {
uni.navigateTo({
url: "/pages/watch/full"
})
}
2025-11-05 15:59:48 +08:00
</script>
<style scoped lang="less">
2025-12-26 10:03:50 +08:00
.index-content-right {
2025-12-25 17:30:31 +08:00
width: 19.5vw;
margin-left: 2vw;
height: 100%;
transition: opacity 1s ease;
2025-12-26 10:03:50 +08:00
.right-top {
2025-12-26 15:15:35 +08:00
margin-top: 80rpx;
2025-12-25 17:30:31 +08:00
width: 100%;
height: 50vh;
background-color: #fff;
border-radius: 4vh;
2025-12-26 10:03:50 +08:00
.top-title {
width: 100%;
height: 7vh;
display: flex;
align-items: center;
margin-left: 2vw;
font-size: 1.4vw;
font-weight: 600;
}
.top-list {
width: 100%;
height: 41vh;
.list-view {
2025-12-26 15:15:35 +08:00
width: 86%;
margin-left: 7%;
2025-12-26 10:03:50 +08:00
height: 8vh;
border: 2rpx solid transparent;
border-radius: 7vw;
margin-bottom: 0.6vh;
display: flex;
align-items: center;
.list-img {
width: 4vw;
height: 4vw;
margin-left: 0.5vw;
margin-right: 0.5vw;
}
.first-line {
display: flex;
.first-line-second {
background-color: #E5E5E5;
color: #555555;
width: 3.2vw;
height: 1.5vw;
display: flex;
justify-content: center;
align-items: center;
font-size: 0.9vw;
border-radius: 0.5vw;
margin-left: 0.5vw;
}
}
.second-line {
color: #999999;
margin-top: 0.2vw;
font-size: 1vw;
}
}
}
2025-12-25 17:30:31 +08:00
}
2025-12-26 10:03:50 +08:00
.right-bottom {
2025-12-25 17:30:31 +08:00
margin-top: 2vh;
width: 100%;
height: 38vh;
background-color: #fff;
border-radius: 3vh;
padding-top: 1vh;
display: flex;
flex-direction: column;
align-items: center;
2025-12-26 10:03:50 +08:00
.bottom-title {
2025-12-25 17:30:31 +08:00
width: 100%;
padding: 0 8%;
display: flex;
justify-content: space-between;
2025-12-26 10:03:50 +08:00
.bottom-carmera {
margin-top: 0.5vw;
2025-12-25 17:30:31 +08:00
width: 3vw;
height: 3vw;
}
}
2025-12-26 10:03:50 +08:00
.big-older {
2025-12-25 17:30:31 +08:00
margin-top: 0.5vw;
2025-12-26 10:03:50 +08:00
width: 9vw;
height: 9vw;
2025-12-30 08:40:09 +08:00
2025-12-25 17:30:31 +08:00
border: 1rpx solid #DCDCDC;
border-radius: 50%;
}
}
}
2025-12-26 10:03:50 +08:00
2025-11-05 15:59:48 +08:00
.index-content-other {
2025-12-25 17:30:31 +08:00
width: 65vw;
2025-11-05 15:59:48 +08:00
height: 100%;
transition: opacity 1s ease;
position: relative;
.abs-time {
position: absolute;
right: 20rpx;
top: 150rpx;
// width: 300rpx;
.big-time {
font-size: 90rpx;
font-weight: 600;
width: 100%;
justify-content: center;
// padding: 0 40rpx;
}
}
}
.right-container-title-nav {
2025-12-26 15:15:35 +08:00
margin-top: 80rpx;
2025-11-05 15:59:48 +08:00
display: flex;
2025-12-25 17:30:31 +08:00
height: 20vh;
2025-11-05 15:59:48 +08:00
position: relative;
font-size: 28rpx;
}
.date {
display: flex;
justify-content: space-around;
2025-12-25 17:30:31 +08:00
margin-top: 0.8vw;
2025-11-05 15:59:48 +08:00
}
.right-container-tem {
display: flex;
2025-12-25 17:30:31 +08:00
margin-top: 0.8vw;
2025-11-05 15:59:48 +08:00
.right-container-tem-text {
font-size: 30rpx;
margin-right: 20rpx;
}
.right-container-tem-img {
width: 38rpx;
height: 38rpx;
}
}
.photo-father {
width: 100%;
height: 1100rpx;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
margin-top: 0rpx;
}
.juzhong {
position: absolute;
top: 0%;
left: 50%;
transform: translate(-50%, -20%);
// 禁止动画阻挡逻辑
z-index: -1;
}
.weight-time {
font-weight: 800;
font-size: 70rpx;
margin-bottom: 0rpx;
position: relative;
margin-left: -50rpx;
}
.big-img {
width: 800rpx;
height: 550rpx;
}
.server-name {
font-size: 35rpx;
margin-right: 10rpx;
font-weight: 600;
}
.server-bgc {
width: 160rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
.bgc-img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.bgc-font {
color: #fff;
z-index: 1;
}
.states-father {
display: flex;
margin: 0 20rpx;
}
.start-button {
width: 100%;
height: 100%;
background: linear-gradient(to bottom, #009DEF, #0076FF);
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
color: #fff;
font-size: 30rpx;
}
.end-button {
width: 100%;
height: 100%;
background: linear-gradient(to bottom, #FFFFFF, #C8D0D9);
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
font-size: 30rpx;
}
.pao-father {
position: absolute;
top: 20rpx;
right: -110rpx;
font-size: 22rpx;
width: 100rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
color: #FFFFFF;
.pao-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
.left-menu {
position: absolute;
2025-12-25 17:30:31 +08:00
top: 55%;
left: 100rpx;
2025-11-05 15:59:48 +08:00
transform: translateY(-50%);
}
.zoom {
transform: scale(1.2);
transform-origin: bottom left;
transition: transform 1s ease;
}
.left-ball {
2025-12-25 17:30:31 +08:00
width: 80rpx;
height: 80rpx;
2025-11-05 15:59:48 +08:00
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
background-color: #fff;
.left-menu-img {
2025-12-25 17:30:31 +08:00
width: 40rpx;
height: 40rpx;
2025-11-05 15:59:48 +08:00
}
}
.right-menu {
position: absolute;
2025-12-25 17:30:31 +08:00
top: 60%;
2025-11-05 15:59:48 +08:00
right: 80rpx;
transform: translateY(-50%);
display: flex;
flex-direction: column;
align-items: center;
width: 140rpx;
.top-img {
width: 140rpx;
height: 110rpx;
padding: 0 50rpx;
}
.right-scroll {
width: 100%;
2025-12-25 17:30:31 +08:00
height: 650rpx;
2025-11-05 15:59:48 +08:00
}
.white-circle {
2025-12-25 17:30:31 +08:00
height: 170rpx;
2025-11-05 15:59:48 +08:00
border-radius: 60rpx;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
text-align: center;
2025-12-25 17:30:31 +08:00
font-size: 25rpx;
width: 100rpx;
2025-11-05 15:59:48 +08:00
.right-menu-img {
2025-12-25 17:30:31 +08:00
width: 50rpx;
height: 50rpx;
2025-11-05 15:59:48 +08:00
}
.right-menu-name {
2025-12-25 17:30:31 +08:00
width: 50rpx;
2025-11-05 15:59:48 +08:00
}
}
}
.zhezhao-top {
position: absolute;
top: 105rpx;
left: 0%;
width: 120%;
height: 120rpx;
background: linear-gradient(to bottom,
rgba(239, 240, 244, 1) 0%,
/* #eff0f4 全不透明 */
rgba(239, 240, 244, 0) 100%
/* #eff0f4 完全透明 */
);
z-index: 4;
}
.zhezhao-bottom {
position: absolute;
bottom: 105rpx;
left: 0%;
width: 120%;
height: 120rpx;
background: linear-gradient(to top,
rgba(239, 240, 244, 1) 0%,
/* #eff0f4 全不透明 */
rgba(239, 240, 244, 0) 100%
/* #eff0f4 完全透明 */
);
z-index: 4;
}
.zhezhao-left {
position: absolute;
top: 0rpx;
left: 0%;
height: 100%;
width: 120rpx;
background: linear-gradient(to right,
rgba(239, 240, 244, 1) 0%,
/* #eff0f4 全不透明 */
rgba(239, 240, 244, 0) 100%
/* #eff0f4 完全透明 */
);
z-index: 4;
}
.zhezhao-right {
position: absolute;
top: 0rpx;
right: 0%;
height: 100%;
width: 120rpx;
background: linear-gradient(to left,
rgba(239, 240, 244, 1) 0%,
/* #eff0f4 全不透明 */
rgba(239, 240, 244, 0) 100%
/* #eff0f4 完全透明 */
);
z-index: 4;
}
2026-01-05 09:29:35 +08:00
.title-card-right {
position: absolute;
right: 0;
top: 0;
width: 10vw;
height: 9.2vw;
border-radius: 2vw;
background-color: #FFFFFF;
padding: 1.6vw;
margin-right: 1.5vw;
}
2025-12-25 17:30:31 +08:00
.title-card {
width: 10vw;
height: 9vw;
border-radius: 2vw;
background-color: #FFFFFF;
padding: 1.6vw;
2025-11-05 15:59:48 +08:00
position: relative;
2025-12-25 17:30:31 +08:00
margin-right: 1.5vw;
2026-01-05 09:29:35 +08:00
}
2025-12-26 10:03:50 +08:00
2026-01-05 09:29:35 +08:00
.card-bottom {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 3vw;
display: flex;
2025-12-26 10:03:50 +08:00
2026-01-05 09:29:35 +08:00
.bottom-img {
width: 1.6vw;
height: 1.6vw;
margin-left: 1.8vw;
}
2025-12-26 10:03:50 +08:00
2026-01-05 09:29:35 +08:00
.bottom-font {
color: #555555;
font-size: 1.4vw;
margin-left: 0.5vw;
2025-11-05 15:59:48 +08:00
}
2026-01-05 09:29:35 +08:00
}
2025-11-05 15:59:48 +08:00
2026-01-05 09:29:35 +08:00
.card-top {
width: 100%;
display: flex;
justify-content: space-between;
position: relative;
.card-top-left {
font-size: 1.8vw;
font-weight: 600;
}
.card-top-right {
width: 2vw;
height: 2vw;
border-radius: 50%;
background-color: #F1F2F3;
2025-12-25 17:30:31 +08:00
display: flex;
2026-01-05 09:29:35 +08:00
justify-content: center;
align-items: center;
2025-11-05 15:59:48 +08:00
2026-01-05 09:29:35 +08:00
.right-img {
width: 0.8vw;
height: 0.8vw;
2025-12-25 17:30:31 +08:00
}
2026-01-05 09:29:35 +08:00
}
2025-11-05 15:59:48 +08:00
2026-01-05 09:29:35 +08:00
.card-spec {
position: absolute;
top: 1.1vw;
left: 1.6vw;
width: 1.5vw;
height: 2vw;
// background-color: #0076FF;
2025-12-25 17:30:31 +08:00
2026-01-05 09:29:35 +08:00
.line {
position: absolute;
inset: 0;
background: linear-gradient(to bottom right,
transparent calc(50% - 1px),
#d5d5d5 50%,
transparent calc(50% + 1px))
2025-12-25 17:30:31 +08:00
}
2026-01-05 09:29:35 +08:00
.line-gray {
2025-12-25 17:30:31 +08:00
position: absolute;
2026-01-05 09:29:35 +08:00
right: -1.1vw;
bottom: -0.6vw;
color: #888888;
font-size: 1.3vw;
2025-12-25 17:30:31 +08:00
}
}
}
2025-12-26 10:03:50 +08:00
.title-time {
2025-12-25 17:30:31 +08:00
position: absolute;
right: 0;
top: 0;
width: 15vw;
height: 9.5vw;
border-radius: 2vw;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
2025-12-26 10:03:50 +08:00
.time-title {
2025-12-25 17:30:31 +08:00
font-weight: 600;
font-size: 3vw;
margin-top: 0.4vw;
}
2025-12-26 10:03:50 +08:00
.time-date {
2025-12-25 17:30:31 +08:00
margin-top: 0.2vw;
font-size: 1.3vw;
color: #222222;
2025-11-05 15:59:48 +08:00
}
}
2025-12-26 10:03:50 +08:00
.blue-button {
2025-12-25 17:30:31 +08:00
margin-top: 0.5vw;
width: 7vw;
height: 2.5vw;
background: linear-gradient(to bottom, #009DEF, #0076FF);
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
color: #fff;
font-size: 28rpx;
}
2025-12-26 10:03:50 +08:00
.name-weight {
2025-12-25 17:30:31 +08:00
font-size: 2vw;
font-weight: 600;
margin: 0.2vw 0;
}
2025-12-26 10:03:50 +08:00
.message-view {
display: flex;
.message-shu {
width: 3rpx;
height: 1.5vw;
background-color: #bcc1c7;
margin: 0 0.4vw;
margin-top: 0.1vw;
}
.message-img {
width: 1.5vw;
height: 1.5vw;
margin-top: 0.1vw;
}
}
.message-bottom {
margin-top: 0.5vh;
width: 100%;
height: 4vh;
display: flex;
justify-content: center;
.bottom-tags {
background-color: #E7F1FF;
color: #0084FA;
height: 100%;
display: flex;
align-items: center;
padding: 0 0.6vw;
border-radius: 0.8vw;
font-size: 1.2vw;
margin: 0 0.2vw;
}
}
2025-12-26 15:15:35 +08:00
.fixed-card {
position: fixed;
right: 2.4vw;
top: 5.8vh;
width: 35vw;
height: 28vh;
background-color: rgba(239, 246, 255, 0.95);
border-radius: 1.5vw;
border: 1rpx solid #638DFF;
box-shadow: 0 2rpx 6rpx #A0B9FF;
display: flex;
align-items: center;
transition: all 0.5s ease;
.fixed-card-left {
display: flex;
flex-direction: column;
align-items: center;
.card-left-img {
width: 12vw;
height: 8vw;
}
}
.big-time {
font-weight: 600;
font-size: 2.8vw;
}
.icon-people {
display: flex;
margin: 0.3vw 0;
color: #555555;
.people-img {
width: 1.5vw;
height: 1.5vw;
margin-right: 0.3vw;
margin-top: 0.1vw;
}
}
.icon-button {
display: flex;
margin-top: 1vw;
font-size: 1.5vw;
.button-left {
width: 8.5vw;
height: 3.3vw;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
border-radius: 1.2vw;
border: 1rpx solid #C7D2E4;
color: #333333;
}
.button-right {
width: 8.5vw;
height: 3.3vw;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
border-radius: 1.2vw;
border: 1rpx solid #5AAEFF;
color: #249BFA;
margin-left: 1vw;
background: linear-gradient(to bottom, #fff, #D1EAFF);
}
}
}
.left-open {
position: absolute;
left: -1.5vw;
top: 50%;
transform: translateY(-50%);
width: 3vw;
height: 5vw;
border: 1rpx solid #B8C4DA;
background-color: #F2F7FD;
z-index: 999;
border-radius: 3vw;
display: flex;
justify-content: center;
align-items: center;
transition: all 0.5s ease;
.open-img {
width: 3vw;
height: 3vw;
}
}
2025-11-05 15:59:48 +08:00
</style>