2025-03-05 17:29:32 +08:00
|
|
|
|
<!-- 护嘱 -->
|
|
|
|
|
<template>
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<!-- click是让抖动停止 -->
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view class="right-container" :style="isshow?{opacity: `1`}:{opacity: `0`}"
|
|
|
|
|
@click="bottomisShaking=false;shakyTable = false">
|
2025-03-05 17:29:32 +08:00
|
|
|
|
<view class="right-container-title-nav">
|
|
|
|
|
<text :class="darkFans?`right-container-title-no-dark`:`right-container-title-no`">
|
|
|
|
|
ID:12345678
|
|
|
|
|
</text>
|
|
|
|
|
<text :class="darkFans?`right-container-title-no-dark`:`right-container-title-no`">
|
|
|
|
|
名称:未命名01
|
|
|
|
|
</text>
|
|
|
|
|
|
|
|
|
|
<view class="right-icons">
|
|
|
|
|
<image class="right-icons-img" :src="`/static/index/undericons/man.png`" />
|
|
|
|
|
<view :class="darkFans?`right-icons-font-dark`: `right-icons-font` ">王金福</view>
|
|
|
|
|
<image class="right-icons-img-icon"
|
|
|
|
|
:src="darkFans?`/static/index/undericons/face.png`:`/static/index/undericons/facelight.png`" />
|
|
|
|
|
<image class="right-icons-img-icon"
|
|
|
|
|
:src="darkFans?`/static/index/undericons/hand.png`:`/static/index/undericons/handlight.png`" />
|
|
|
|
|
<image class="right-icons-img-icon"
|
|
|
|
|
:src="darkFans?`/static/index/undericons/out.png`:`/static/index/undericons/outlight.png`" />
|
|
|
|
|
</view>
|
|
|
|
|
<view class="right-container-title-class-anhei-button" @click="darkFanschange()" v-show="!darkFans">
|
|
|
|
|
<text class="right-container-title-class-anhei">
|
|
|
|
|
切换到暗黑模式
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="right-container-title-class-anhei-button" :style="darkFans ? { backgroundColor:'#fff' } : {}"
|
|
|
|
|
@click="darkFanschange()" v-show="darkFans">
|
|
|
|
|
<text class="right-container-title-class-anhei" :style="darkFans ? { color: 'black' } : {}">
|
|
|
|
|
取消暗黑模式
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-07 17:26:02 +08:00
|
|
|
|
<view class="doctorsay-container-view">
|
|
|
|
|
<view class="doctorsay-container-items">
|
|
|
|
|
<view class="doctorsay-container-up">
|
2025-03-11 17:27:40 +08:00
|
|
|
|
<view v-for="(item,index) in doctorsayList" :key="index" @click="changLeft(index)">
|
2025-03-07 17:26:02 +08:00
|
|
|
|
<view class="doctorsay-container-card"
|
2025-03-24 17:37:51 +08:00
|
|
|
|
:style="index === upmenuIndex ? {background: 'linear-gradient(to right bottom, #00c9ff, #0076ff)'} : {}">
|
2025-03-07 17:26:02 +08:00
|
|
|
|
<image class="doctorsay-container-card-img"
|
|
|
|
|
:src="index === upmenuIndex ? item.targetUrl : item.url" />
|
|
|
|
|
<view
|
|
|
|
|
:class="(index === upmenuIndex) ? `doctorsay-container-card-font-dark`:`doctorsay-container-card-font`">
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-17 17:34:36 +08:00
|
|
|
|
<view>
|
|
|
|
|
<view class="doctorsay-container-card"
|
2025-03-21 17:36:27 +08:00
|
|
|
|
style="background: linear-gradient(135deg, #01e7be 0%, #0080dd 100%);">
|
2025-03-17 17:34:36 +08:00
|
|
|
|
<image class="doctorsay-container-card-img" src="/static/index/shexiang.png" />
|
|
|
|
|
<view class="doctorsay-container-card-font-dark">
|
|
|
|
|
监控
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-07 17:26:02 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="doctorsay-container-down">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<view class="doctorsay-top">
|
|
|
|
|
<view class="doctorsay-top-gun"></view>
|
|
|
|
|
<view class="doctorsay-top-font">服务类型</view>
|
|
|
|
|
</view>
|
2025-03-12 15:22:01 +08:00
|
|
|
|
<scroll-view :scroll-y="canmove" class="doctorsay-container-scroll" @scroll="handleScroll">
|
2025-03-12 10:33:32 +08:00
|
|
|
|
<view v-for="(item,index) in downList" :key="index">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<view class="doctorsay-container-button"
|
|
|
|
|
@touchstart="handleTouchStart(item.type,index,$event)" @touchmove="handleTouchMove"
|
2025-03-12 15:22:01 +08:00
|
|
|
|
@touchend="handleTouchEnd">
|
|
|
|
|
<text
|
|
|
|
|
:class="downmenuIndex===index?`doctorsay-container-text-target`:`doctorsay-container-text`"
|
2025-03-14 17:30:56 +08:00
|
|
|
|
:style="{
|
|
|
|
|
backgroundColor: item.color ? item.color : '',
|
|
|
|
|
...(isBack ? {} : { width: '250rpx', height: '75rpx', fontSize: '30rpx', borderRadius: '10rpx' })
|
|
|
|
|
}">{{item.type}}</text>
|
2025-03-12 10:33:32 +08:00
|
|
|
|
<image v-show="downmenuIndex===index" class="doctorsay-container-button-uplight"
|
2025-03-12 15:22:01 +08:00
|
|
|
|
:style="isBack?{}:{top:'30rpx'}" :src="`/static/index/cardicons/uplight.png`" />
|
2025-03-12 10:33:32 +08:00
|
|
|
|
</view>
|
2025-03-07 17:26:02 +08:00
|
|
|
|
</view>
|
|
|
|
|
</scroll-view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="doctorsay-container-container">
|
|
|
|
|
<view class="doctorsay-container-title">
|
|
|
|
|
<view class="doctorsay-container-left">
|
|
|
|
|
<view class="doctorsay-container-left-gun"></view>
|
|
|
|
|
<view class="doctorsay-container-left-font">时间矩阵</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="doctorsay-container-right">
|
2025-03-11 17:27:40 +08:00
|
|
|
|
<view class="doctorsay-container-right-kuai-cheng"></view>
|
|
|
|
|
<view class="doctorsay-container-kuai-font">日常</view>
|
|
|
|
|
<view class="doctorsay-container-right-kuai-zi"></view>
|
|
|
|
|
<view class="doctorsay-container-kuai-font">周期</view>
|
|
|
|
|
<view class="doctorsay-container-button-father" v-for="(item,index) in rightList" :key="index">
|
|
|
|
|
<view
|
|
|
|
|
:class="rightListIndex===index?`doctorsay-container-button-target`:`doctorsay-container-button`"
|
|
|
|
|
@click="rightListClick(index)">
|
|
|
|
|
{{item}}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-24 17:37:51 +08:00
|
|
|
|
<view class="doctorsay-container-juzhen" @click="routerPush">
|
2025-03-26 17:34:08 +08:00
|
|
|
|
预览
|
2025-03-24 17:37:51 +08:00
|
|
|
|
</view>
|
2025-03-07 17:26:02 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
<view class="super-card">
|
|
|
|
|
<view class="super-card-container">
|
2025-03-26 17:34:08 +08:00
|
|
|
|
<!-- 气泡 top: `${2 * scrollTop - 253}rpx` -->
|
|
|
|
|
<view class="boom">
|
|
|
|
|
<view :style="{ marginTop: `-${2 *moveDownNumber}rpx` }">
|
|
|
|
|
<view v-for="(item,index) in timearr[0].children" :key="index">
|
|
|
|
|
<view
|
|
|
|
|
:class="touchindex1 === index ||(liang.index1 === index && !canmove) || (flyNumber.index1 === index && shakyTable) ? `boom-son-target`: `boom-son`"
|
|
|
|
|
v-show="item.serve">
|
|
|
|
|
{{item.serve}}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-24 17:37:51 +08:00
|
|
|
|
</view>
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<swiper :disable-touch="!canmove || shakyTable" :current="currentNumber" class="scroll-x"
|
|
|
|
|
circular :indicator-dots="false" @change="changecurrentNumber" :interval="4000"
|
|
|
|
|
:duration="500">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<swiper-item v-for="(item,index) in [1,2,3,4]" :key="index">
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view
|
|
|
|
|
style="display: flex;box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);background: linear-gradient(to right, #c4dbf4,#c9c2ef, #c6dcf3);">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<view v-for="(item0,index0) in timearr.slice(index * 6, (index + 1) * 6)"
|
|
|
|
|
:key="index0">
|
|
|
|
|
<view class="super-card-time"
|
2025-03-21 17:36:27 +08:00
|
|
|
|
:style="rightListIndex ? { width: '274rpx' } : { width: '206rpx' }">
|
2025-03-17 17:34:36 +08:00
|
|
|
|
{{item0.time + ":00"}}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
</view>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<view style="display: flex;height: calc(100% - 80rpx);">
|
|
|
|
|
<scroll-view style="height: 100%;" :scroll-top="scrollTop"
|
2025-03-21 17:36:27 +08:00
|
|
|
|
:scroll-y="canmove && !shakyTable" @scroll="handleScrolltime"
|
|
|
|
|
:style="rightListIndex ? { width: '6700rpx' } : { width: '5000rpx' }"
|
2025-03-14 17:30:56 +08:00
|
|
|
|
:show-scrollbar="false">
|
|
|
|
|
<view style="display: flex;height: 100%;">
|
|
|
|
|
<view v-for="(item0,index0) in timearr.slice(index * 6, (index + 1) * 6)"
|
|
|
|
|
:key="index0">
|
|
|
|
|
<view class="super-card-time-und"
|
2025-03-21 17:36:27 +08:00
|
|
|
|
:style="rightListIndex ? { width: '274rpx' } : { width: '206rpx' }">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<view v-for="(item1,index1) in item0.children" style="width: 100%;"
|
|
|
|
|
:key="index1">
|
2025-03-24 17:37:51 +08:00
|
|
|
|
<view
|
2025-03-26 17:34:08 +08:00
|
|
|
|
:class="targetRuler.current===currentNumber && targetRuler.index0 === index0 && targetRuler.index1 === index1 ? targetRuler.index1 ?`title-time-border-big`:`title-time-border-big-top` : `super-card-time-card` "
|
|
|
|
|
:style="!targetRuler.bordershow && saveRulerTime.index0 === index0 && saveRulerTime.index1 === index1 ? {zIndex:999} : {borderTop: '1rpx solid transparent'}"
|
|
|
|
|
:id="`a${index0}_${index1}`" style="position: relative;"
|
2025-03-21 17:36:27 +08:00
|
|
|
|
@click="rulerTouchClick(item1,index0,index1,$event)"
|
2025-03-14 17:30:56 +08:00
|
|
|
|
@touchstart="rulerTouchStart(item1,index0,index1,$event)"
|
|
|
|
|
@touchmove="rulerTouchMove" @touchend="rulerTouchEnd()"
|
|
|
|
|
:data-index0="index0" :data-index1="index1">
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view class="title-time-delete"
|
|
|
|
|
v-show="liang.index0 !== index0 || liang.index1 !== index1 || canmove"
|
|
|
|
|
v-if="item1.value&&shakyTable "
|
|
|
|
|
@click.stop="deleteItems(item1.value,index0,index1)">
|
|
|
|
|
-
|
|
|
|
|
</view>
|
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<view :class="getClass(item1,index0,index1)"
|
2025-03-21 17:36:27 +08:00
|
|
|
|
style="font-size: 30rpx;overflow: hidden;"
|
|
|
|
|
:style="{ animationDelay:`-${computeDelay(index0, index1).toFixed(2)}s` }">
|
|
|
|
|
<view class="title-time" v-if="item1.time"
|
|
|
|
|
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove"
|
2025-03-14 17:30:56 +08:00
|
|
|
|
style="margin-top: 5rpx;">
|
|
|
|
|
<view class="title-time-time"
|
|
|
|
|
style="font-size: 30rpx;">
|
|
|
|
|
{{item1.time}}
|
|
|
|
|
</view>
|
2025-03-17 17:34:36 +08:00
|
|
|
|
<image class="title-time-button"
|
2025-03-21 17:36:27 +08:00
|
|
|
|
:src="item1.type=='日常'?`/static/index/yellowbian.png`:`/static/index/puoplebian.png`" />
|
2025-03-17 17:34:36 +08:00
|
|
|
|
<view class="title-time-font">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{{item1.type}}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view style="margin-top: 20rpx;font-weight: 700;"
|
|
|
|
|
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{{splitString(item1.value)[0]}}
|
|
|
|
|
</view>
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view class="down-icons"
|
|
|
|
|
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove"
|
|
|
|
|
:style="item1.type!='日常'?{backgroundColor:`rgb(212,203,255)`}:{}"
|
|
|
|
|
v-if="splitString(item1.value)[1]">
|
|
|
|
|
<view class=""
|
|
|
|
|
v-for="(item,index) in splitString(item1.value).slice(1)"
|
|
|
|
|
:key="index">
|
|
|
|
|
<view class="icon"
|
|
|
|
|
:style="item1.type!='日常'?{backgroundColor:`rgb(123,97,255)`}:{}">
|
|
|
|
|
{{splitString(item1.value)[index + 1]}}
|
|
|
|
|
</view>
|
2025-03-17 17:34:36 +08:00
|
|
|
|
</view>
|
2025-03-14 17:30:56 +08:00
|
|
|
|
</view>
|
2025-03-12 15:22:01 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-14 17:30:56 +08:00
|
|
|
|
</scroll-view>
|
|
|
|
|
</view>
|
|
|
|
|
</swiper-item>
|
|
|
|
|
</swiper>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="super-card-end">
|
|
|
|
|
<view class="super-end-father">
|
|
|
|
|
<view class="super-end-font-father">
|
|
|
|
|
<view class="super-end-font-gun"></view>
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view class="super-end-font-font">即时指令</view>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
</view>
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<scroll-view scroll-x class="super-end-items-all" :scroll-left="scrollLeft">
|
|
|
|
|
<view class="super-end-items">
|
|
|
|
|
<view v-for="(item,index) in bottomItems" :key="index">
|
|
|
|
|
<view @touchstart="bottomTouchStart" @touchmove="bottomTouchMove"
|
2025-03-24 17:37:51 +08:00
|
|
|
|
@touchend="bottomTouchEnd"
|
|
|
|
|
:style="item.target?{background: item.target,transition:`all 1.5s ease-in-out`}:{transition:`all 1.5s ease-in-out`}"
|
|
|
|
|
class="super-end-items-father">
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view class="super-end-items-father-close-father" v-show="bottomisShaking"
|
|
|
|
|
@click.stop="deletebottom(index,item.name)">
|
|
|
|
|
-
|
|
|
|
|
</view>
|
2025-03-07 17:26:02 +08:00
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view :style="{ animationDelay:`-${index * 0.1}s` }"
|
|
|
|
|
:class="bottomisShaking?`super-end-items-img-father-active`:`super-end-items-img-father`">
|
|
|
|
|
<image class="super-end-items-img" :src="item.url" />
|
|
|
|
|
</view>
|
|
|
|
|
<view class="super-end-items-font">{{item.name}}</view>
|
2025-03-14 17:30:56 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-21 17:36:27 +08:00
|
|
|
|
</scroll-view>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-05 17:29:32 +08:00
|
|
|
|
</view>
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<!-- 长按的弹出层 -->
|
2025-03-26 17:34:08 +08:00
|
|
|
|
<view v-show="isopen" class="popup-overlay" @click="isopen=false;flyNumber.index0=999;touchindex1=-1">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<view class="popup-overlay-content"
|
|
|
|
|
:style="{ top: (2*openY - 350) + 'rpx',left: (2*openX - 780) + 'rpx',opacity: isopacity ? 1 : 0,backgroundColor:timearr[flyNumber.index0]?.children[flyNumber.index1]?.type==='日常'? '#fffcf6':'rgb(246, 244, 254)' }"
|
|
|
|
|
@click.stop>
|
|
|
|
|
<view class="popup-overlay-content-left">
|
|
|
|
|
<image class="popup-overlay-content-left-img" :src="`/static/index/teeth.png`" />
|
|
|
|
|
<text class="popup-overlay-content-left-font">
|
|
|
|
|
{{ timearr[flyNumber.index0]?.children[flyNumber.index1]?.value }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="popup-overlay-content-right">
|
|
|
|
|
<view class="time-font">
|
|
|
|
|
10:00 - 10:10
|
|
|
|
|
</view>
|
|
|
|
|
<view class="time-text">
|
|
|
|
|
为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
</view>
|
2025-03-14 17:30:56 +08:00
|
|
|
|
</view>
|
|
|
|
|
<!-- 拉动松手的弹出层 -->
|
|
|
|
|
<view v-if="songisopen" class="popup-song" @click="songisopen=false">
|
|
|
|
|
<view class="popup-song-contain" :style="{opacity: songisopacity ? 1 : 0}" @click.stop>
|
|
|
|
|
<view class="popup-song-father">
|
|
|
|
|
<image class="shu-up-img" src="/static/index/cheng.png" />
|
|
|
|
|
<view class="shu-up-font">
|
|
|
|
|
<view class="">
|
|
|
|
|
服务时段:{{ openValue.time + ":00"}}
|
|
|
|
|
</view>
|
|
|
|
|
<view style="margin-left: 30rpx;">
|
|
|
|
|
护理时长:10分钟
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="shu-container-left">
|
|
|
|
|
<view class="shu-container-left-gun"></view>
|
|
|
|
|
<view class="shu-container-left-font">服务指令</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="arrayindex">
|
|
|
|
|
<view v-for="(item,index) in openValue.array" :key="index">
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<view style="position: relative;box-shadow: 10rpx 10rpx 20rpx rgba(105, 129, 178, 0.4)"
|
2025-03-17 17:34:36 +08:00
|
|
|
|
:class="cardsumit.op.index[2]===index?`arrayindex-one-target`:`arrayindex-one`"
|
2025-03-14 17:30:56 +08:00
|
|
|
|
@click="clickOp(index,item.type,item.op)">
|
|
|
|
|
<image class="ri-img" v-show="!item.op"
|
2025-03-17 17:34:36 +08:00
|
|
|
|
:src="cardsumit.op.index[2]!==index? `/static/index/ridark.png`:`/static/index/ri.png`" />
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<image class="ri-img" v-show="item.op===1"
|
2025-03-17 17:34:36 +08:00
|
|
|
|
:src="cardsumit.op.index[2]==index? `/static/index/zhoudark.png`:`/static/index/zhou.png`" />
|
2025-03-14 17:30:56 +08:00
|
|
|
|
<image class="ri-img" v-show="item.op===2"
|
2025-03-17 17:34:36 +08:00
|
|
|
|
:src="cardsumit.op.index[2]==index? `/static/index/jidark.png`:`/static/index/ji.png`" />
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{{item.type}}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="shu-container-left" style="margin-top: 50rpx;" v-show="openOp!=2">
|
|
|
|
|
<view class="shu-container-left-gun"></view>
|
|
|
|
|
<view class="shu-container-left-font">开始分钟</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="time-father" v-show="openOp!=2">
|
|
|
|
|
<view v-for="(item,index) in timeArray" :key="index">
|
|
|
|
|
<view v-show="Number(item)>=50" class="time-one-hui">
|
|
|
|
|
{{item}}
|
|
|
|
|
</view>
|
|
|
|
|
<view v-show="Number(item)<50"
|
|
|
|
|
:class="cardsumit.startTime===item?`time-one-target`:`time-one`"
|
|
|
|
|
@click="clickTime(item)">
|
|
|
|
|
{{item}}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="shu-container-left" style="margin-top: 50rpx;" v-show="openOp==1">
|
|
|
|
|
<view class="shu-container-left-gun"></view>
|
|
|
|
|
<view class="shu-container-left-font">周期类型</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="radio-father" v-show="openOp==1">
|
|
|
|
|
<view :class="isweek?`radio-circle-target`: `radio-circle`"
|
|
|
|
|
@click="isweek=true;cardsumit.monthTime=''"></view>
|
|
|
|
|
<view class="radio-font" @click="isweek=true;cardsumit.monthTime=''">每周</view>
|
|
|
|
|
<view :class="!isweek?`radio-circle-target`: `radio-circle`"
|
|
|
|
|
@click="isweek=false;cardsumit.weekTime=''"></view>
|
|
|
|
|
<view class="radio-font" @click="isweek=false;cardsumit.weekTime=''">每月</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="week-father" v-show="isweek&&openOp==1">
|
|
|
|
|
<view v-for="(item,index) in weekDays" :key="index">
|
|
|
|
|
<view :class="cardsumit.weekTime===item?`week-one-target`:`week-one`"
|
|
|
|
|
@click="clickweek(item)">
|
|
|
|
|
{{item}}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="month-father" v-show="!isweek&&openOp==1">
|
|
|
|
|
<view v-for="(item,index) in days" :key="index">
|
|
|
|
|
<view :class="cardsumit.monthTime===item?`month-one-target`:`month-one`"
|
|
|
|
|
@click="clickmonth(item)">
|
|
|
|
|
{{item}}
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="button-father">
|
|
|
|
|
<view style="display: flex;">
|
|
|
|
|
<view class="button-father-right" @click="movetoruler" v-show="isblue()">
|
|
|
|
|
确定
|
|
|
|
|
</view>
|
|
|
|
|
<view class="button-father-wrong" v-show="!isblue()">
|
|
|
|
|
确定
|
|
|
|
|
</view>
|
|
|
|
|
<view class="button-father-wrong" @click="songisopen=false" style="margin-left: 20rpx;">
|
|
|
|
|
取消
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-21 17:36:27 +08:00
|
|
|
|
<!-- 删除表格的的弹出层 -->
|
|
|
|
|
<view v-show="deleteisopen" class="popup-delete" @click="deleteisopen=false">
|
|
|
|
|
<view class="popup-delete-content" :style="{ opacity: deleteisopacity ? 1 : 0 }" @click.stop>
|
|
|
|
|
<image class="popup-delete-img" src="/static/index/deleteicon.png" />
|
|
|
|
|
<view class="popup-delete-text">
|
|
|
|
|
确定要删除 {{deletename}} 吗?
|
|
|
|
|
</view>
|
|
|
|
|
<view class="popup-delete-button">
|
|
|
|
|
<view class="popup-delete-button-right" @click="deleteisopen=false">
|
|
|
|
|
取消
|
|
|
|
|
</view>
|
|
|
|
|
<view class="popup-delete-button-left" @click="deleteRuler(deleteindex[0],deleteindex[1])">
|
|
|
|
|
确定
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- 删除下方菜单的的弹出层 -->
|
|
|
|
|
<view v-show="deletedownisopen" class="popup-delete" @click="deletedownisopen=false">
|
|
|
|
|
<view class="popup-delete-content" :style="{ opacity: deletedownisopacity ? 1 : 0 }" @click.stop>
|
|
|
|
|
<image class="popup-delete-img" src="/static/index/deleteicon.png" />
|
|
|
|
|
<view class="popup-delete-text">
|
|
|
|
|
确定要删除 {{deletename}} 吗?
|
|
|
|
|
</view>
|
|
|
|
|
<view class="popup-delete-button">
|
|
|
|
|
<view class="popup-delete-button-right" @click="deletedownisopen=false">
|
|
|
|
|
取消
|
|
|
|
|
</view>
|
|
|
|
|
<view class="popup-delete-button-left"
|
|
|
|
|
@click="bottomItems.splice(deletebottomindex, 1);deletedownisopen=false">
|
|
|
|
|
确定
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-03-05 17:29:32 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
2025-03-05 17:29:32 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
2025-03-14 17:30:56 +08:00
|
|
|
|
import { ref, onMounted, onBeforeUnmount, computed, nextTick, defineProps, defineEmits, watch } from 'vue';
|
2025-03-24 17:37:51 +08:00
|
|
|
|
import { onShow, onHide } from '@dcloudio/uni-app';
|
2025-03-05 17:29:32 +08:00
|
|
|
|
import type { roomBtttonType } from "./index";
|
2025-03-27 17:32:12 +08:00
|
|
|
|
import {pageStudyInfo} from "./api.js";
|
2025-03-05 17:29:32 +08:00
|
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
|
|
|
isshow: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
darkFans: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
2025-03-11 17:27:40 +08:00
|
|
|
|
canmove: {
|
2025-03-07 17:26:02 +08:00
|
|
|
|
type: Boolean,
|
|
|
|
|
required: true,
|
2025-03-11 17:27:40 +08:00
|
|
|
|
},
|
|
|
|
|
liang: {
|
|
|
|
|
type: Object,
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
2025-03-05 17:29:32 +08:00
|
|
|
|
});
|
2025-03-14 17:30:56 +08:00
|
|
|
|
watch(
|
|
|
|
|
() => props.canmove,
|
|
|
|
|
() => {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
bottomisShaking.value = false;
|
|
|
|
|
// shakyTable.value = false
|
2025-03-14 17:30:56 +08:00
|
|
|
|
})
|
|
|
|
|
watch(
|
|
|
|
|
() => props.isshow,
|
|
|
|
|
() => {
|
|
|
|
|
bottomisShaking.value = false
|
2025-03-21 17:36:27 +08:00
|
|
|
|
shakyTable.value = false
|
2025-03-14 17:30:56 +08:00
|
|
|
|
})
|
2025-03-11 17:27:40 +08:00
|
|
|
|
onMounted(() => {
|
|
|
|
|
downList.value = bigArray[0].data
|
|
|
|
|
})
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const bottomItems = ref([
|
|
|
|
|
{
|
|
|
|
|
name: '纸尿裤',
|
|
|
|
|
url: "/static/index/niao.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '呕吐',
|
|
|
|
|
url: "/static/index/tu.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '吸痰',
|
|
|
|
|
url: "/static/index/ou.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '大便',
|
|
|
|
|
url: "/static/index/baba.png"
|
|
|
|
|
},
|
2025-03-21 17:36:27 +08:00
|
|
|
|
{
|
|
|
|
|
name: '纸尿裤',
|
|
|
|
|
url: "/static/index/niao.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '呕吐',
|
|
|
|
|
url: "/static/index/tu.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '吸痰',
|
|
|
|
|
url: "/static/index/ou.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '大便',
|
|
|
|
|
url: "/static/index/baba.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '纸尿裤',
|
|
|
|
|
url: "/static/index/niao.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '呕吐',
|
|
|
|
|
url: "/static/index/tu.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '吸痰',
|
|
|
|
|
url: "/static/index/ou.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '大便',
|
|
|
|
|
url: "/static/index/baba.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '纸尿裤',
|
|
|
|
|
url: "/static/index/niao.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '呕吐',
|
|
|
|
|
url: "/static/index/tu.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '吸痰',
|
|
|
|
|
url: "/static/index/ou.png"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '大便',
|
|
|
|
|
url: "/static/index/baba.png"
|
|
|
|
|
},
|
2025-03-14 17:30:56 +08:00
|
|
|
|
])
|
|
|
|
|
const timeArray = [
|
|
|
|
|
`00`, `05`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `45`, `50`, `55`
|
|
|
|
|
];
|
|
|
|
|
const weekDays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"];
|
|
|
|
|
const days = Array.from({ length: 31 }, (_, i) => (i + 1).toString().padStart(2, "0"));
|
|
|
|
|
const isweek = ref(true);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
//弹窗
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// const containerRef = ref(null);
|
|
|
|
|
const scrollLeft = ref(0);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
//移动表格
|
|
|
|
|
const scrollTop = ref(0)
|
|
|
|
|
//左下的数组
|
|
|
|
|
const downList = ref<any>()
|
2025-03-07 17:26:02 +08:00
|
|
|
|
//左下的数组
|
2025-03-11 17:27:40 +08:00
|
|
|
|
const rightList = ref<String[]>([
|
2025-03-12 15:22:01 +08:00
|
|
|
|
// "三分段",
|
|
|
|
|
// "四分段",
|
2025-03-07 17:26:02 +08:00
|
|
|
|
])
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// const saveBoomName = ref("")
|
|
|
|
|
// const saveBoomTop = ref(0)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const isopen = ref(false)
|
|
|
|
|
const songisopen = ref(false)
|
|
|
|
|
const isopacity = ref(false)
|
|
|
|
|
const songisopacity = ref(false)
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// 删除表格弹窗
|
|
|
|
|
const deleteisopen = ref(false);
|
|
|
|
|
const deletename = ref("")
|
|
|
|
|
const deleteisopacity = ref(false)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
//第几套表格
|
|
|
|
|
const currentNumber = ref(1);
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const scrollKey = ref(0);
|
|
|
|
|
function pseudoRandom(index0, index1) {
|
|
|
|
|
const seed = index0 * 55.9898 + index1 * 78.233;
|
|
|
|
|
// 产生一个伪随机数,取小数部分
|
|
|
|
|
return Math.abs(Math.sin(seed) * 43758.5453) % 1;
|
|
|
|
|
}
|
|
|
|
|
function computeDelay(index0, index1) {
|
|
|
|
|
const range = 2; // 延迟范围 0 ~ 2 秒
|
|
|
|
|
return pseudoRandom(index0, index1) * range;
|
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const changecurrentNumber = (event : any) => {
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
currentNumber.value = event.detail.current;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
nextTick(() => {
|
|
|
|
|
scrollTop.value = moveDownNumber.value;
|
|
|
|
|
})
|
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
};
|
2025-03-21 17:36:27 +08:00
|
|
|
|
//监听拖拽
|
|
|
|
|
const dragOffset = ref(0);
|
|
|
|
|
const moveDownNumber = ref(0)
|
|
|
|
|
function handleScrolltime(e) {
|
|
|
|
|
let num = e.detail.scrollTop
|
|
|
|
|
let formattedNum = parseFloat(num.toFixed(2));
|
|
|
|
|
moveDownNumber.value = formattedNum
|
|
|
|
|
}
|
|
|
|
|
const changeBug = ref(true);
|
|
|
|
|
const nextItems = () => {
|
|
|
|
|
currentNumber.value > 2 ? currentNumber.value = 0 : currentNumber.value++
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
// 方法:根据条件返回不同的类名
|
|
|
|
|
const getClass = (item, index0, index1) => {
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
2025-03-26 17:34:08 +08:00
|
|
|
|
if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1 && (redNameindex0.value.includes(index0 + (currentNumber.value * 6)) || (redNameindex1.value != index1))) {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
return 'title-time-border-red';
|
|
|
|
|
}
|
|
|
|
|
else if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
return 'title-time-border-blue';
|
2025-03-21 17:36:27 +08:00
|
|
|
|
}
|
|
|
|
|
else if (item.type === '日常') {
|
|
|
|
|
if (flyNumber.value.index0 === (index0 + (currentNumber.value * 6)) && flyNumber.value.index1 === index1 && shakyTable.value) {
|
|
|
|
|
return 'title-time-border-yellow-active-transparent';
|
|
|
|
|
} else if (shakyTable.value) {
|
|
|
|
|
return 'title-time-border-yellow-active';
|
|
|
|
|
} else {
|
|
|
|
|
return 'title-time-border-yellow';
|
|
|
|
|
}
|
2025-03-12 15:22:01 +08:00
|
|
|
|
} else if (item.type) {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
//为啥这么写,是因为动画写行内无效!!!
|
|
|
|
|
if (flyNumber.value.index0 === (index0 + (currentNumber.value * 6)) && flyNumber.value.index1 === index1 && shakyTable.value) {
|
|
|
|
|
return 'title-time-border-pouple-active-transparent';
|
|
|
|
|
}
|
|
|
|
|
else if (shakyTable.value) {
|
|
|
|
|
return 'title-time-border-pouple-active';
|
|
|
|
|
} else {
|
|
|
|
|
return 'title-time-border-pouple';
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
return 'title-time-border';
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-07 17:26:02 +08:00
|
|
|
|
// 初始化下面侧单列表
|
|
|
|
|
const doctorsayList = ref<roomBtttonType[]>([
|
|
|
|
|
{ url: '/static/index/doctorsay/light/clean.png', targetUrl: '/static/index/doctorsay/dark/clean.png', name: '清洁' },
|
|
|
|
|
{ url: '/static/index/doctorsay/light/drink.png', targetUrl: '/static/index/doctorsay/dark/drink.png', name: '饮食' },
|
|
|
|
|
{ url: '/static/index/doctorsay/light/bed.png', targetUrl: '/static/index/doctorsay/dark/bed.png', name: '睡眠' },
|
2025-03-12 15:22:01 +08:00
|
|
|
|
{ url: '/static/index/doctorsay/light/shi.png', targetUrl: '/static/index/doctorsay/dark/shi.png', name: '排泻' },
|
2025-03-07 17:26:02 +08:00
|
|
|
|
{ url: '/static/index/doctorsay/light/use.png', targetUrl: '/static/index/doctorsay/dark/use.png', name: '日常' },
|
|
|
|
|
|
|
|
|
|
]);
|
2025-03-05 17:29:32 +08:00
|
|
|
|
// 当前选中的菜单索引
|
2025-03-12 15:22:01 +08:00
|
|
|
|
const rightListIndex = ref<number>(1);
|
2025-03-17 17:34:36 +08:00
|
|
|
|
// const undermenuIndex = ref<number>(0);
|
2025-03-07 17:26:02 +08:00
|
|
|
|
const upmenuIndex = ref<number>(0);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
const downmenuIndex = ref<number>(999);
|
2025-03-05 17:29:32 +08:00
|
|
|
|
// 暗黑模式
|
|
|
|
|
// const darkFans = ref<boolean>(false);
|
|
|
|
|
const underFans = ref<boolean>(false);
|
|
|
|
|
// 当前选中的菜单索引
|
|
|
|
|
const roomTar = ref<number[]>([]);
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const emit = defineEmits(['darkchange', 'savename', 'saveruler', 'closename', 'changefangkuang']);
|
2025-03-05 17:29:32 +08:00
|
|
|
|
// 暗黑模式改变
|
|
|
|
|
const darkFanschange = () => {
|
|
|
|
|
emit('darkchange', !props.darkFans);
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
//变更左侧菜单
|
|
|
|
|
const changLeft = (index : number) => {
|
|
|
|
|
upmenuIndex.value = index
|
|
|
|
|
downList.value = bigArray[index].data
|
|
|
|
|
downmenuIndex.value = 999
|
|
|
|
|
}
|
|
|
|
|
// 变更右部菜单
|
|
|
|
|
const rightListClick = (index : number) => {
|
|
|
|
|
rightListIndex.value = index;
|
|
|
|
|
};
|
2025-03-05 17:29:32 +08:00
|
|
|
|
|
2025-03-07 17:26:02 +08:00
|
|
|
|
const timer = ref(null);//计时器
|
2025-03-11 17:27:40 +08:00
|
|
|
|
const elementsInfo = ref({})//所有表格的信息
|
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
|
|
|
|
|
const moveX = ref(0)
|
|
|
|
|
const moveY = ref(0)
|
|
|
|
|
|
|
|
|
|
const openX = ref(0)
|
|
|
|
|
const openY = ref(0)
|
|
|
|
|
const flyNumber = ref({
|
|
|
|
|
index0: 999,
|
2025-03-21 17:36:27 +08:00
|
|
|
|
index1: 999,
|
|
|
|
|
serve: ''
|
2025-03-14 17:30:56 +08:00
|
|
|
|
})
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const deletebottomindex = ref(-1);
|
|
|
|
|
const deletedownisopen = ref(false);
|
|
|
|
|
const deletedownisopacity = ref(false);
|
|
|
|
|
const deletebottom = (index : number, name : string) => {
|
|
|
|
|
bottomisShaking.value = false;
|
|
|
|
|
deletebottomindex.value = index;
|
|
|
|
|
shakyTable.value = false;
|
|
|
|
|
deletedownisopacity.value = false;
|
|
|
|
|
deletedownisopen.value = true;
|
|
|
|
|
deletename.value = name;
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
deletedownisopacity.value = true
|
|
|
|
|
}, 200)
|
|
|
|
|
}
|
|
|
|
|
const deleteindex = ref([-1, -1])
|
|
|
|
|
const deleteItems = (name : string, index0 : number, index1 : number) => {
|
|
|
|
|
deleteindex.value = [-1, -1];
|
|
|
|
|
shakyTable.value = false;
|
|
|
|
|
bottomisShaking.value = false;
|
|
|
|
|
deleteisopacity.value = false;
|
|
|
|
|
deleteisopen.value = true;
|
|
|
|
|
deleteindex.value = [index0 + (currentNumber.value * 6), index1]
|
|
|
|
|
deletename.value = name;
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
deleteisopacity.value = true
|
|
|
|
|
}, 200)
|
|
|
|
|
}
|
2025-03-26 17:34:08 +08:00
|
|
|
|
const touchindex1 = ref(-1);
|
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
//表格点击开始
|
|
|
|
|
const rulerTouchClick = (item : any, index0 : number, index1 : number, e : any) => {
|
|
|
|
|
if (item.value) {
|
2025-03-26 17:34:08 +08:00
|
|
|
|
touchindex1.value = index1;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const query = uni.createSelectorQuery()
|
|
|
|
|
query
|
|
|
|
|
.selectAll('.super-card-time-card')
|
|
|
|
|
.boundingClientRect((data : any) => {
|
|
|
|
|
data.forEach(async (res : any) => {
|
|
|
|
|
// 根据你的条件筛选元素
|
|
|
|
|
if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
|
|
|
|
|
if (res.left > 200 && res.left < 500) {
|
|
|
|
|
// 表格太靠左侧,修改到右面
|
|
|
|
|
openX.value = Math.floor(res.left) + 520;
|
|
|
|
|
} else {
|
|
|
|
|
openX.value = Math.floor(res.left)
|
|
|
|
|
}
|
|
|
|
|
if (res.top > 140 && res.top < 300) {
|
|
|
|
|
// 表格太靠上侧,修改到下面
|
|
|
|
|
openY.value = Math.floor(res.top) + 250;
|
|
|
|
|
} else {
|
|
|
|
|
openY.value = Math.floor(res.top)
|
|
|
|
|
}
|
|
|
|
|
// openY.value = Math.floor(res.top);
|
|
|
|
|
await nextTick()
|
|
|
|
|
isopen.value = true;
|
|
|
|
|
isopacity.value = false;
|
|
|
|
|
//加动画
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
isopacity.value = true;
|
|
|
|
|
}, 100)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.exec()
|
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const shakyTable = ref(false);
|
2025-03-24 17:37:51 +08:00
|
|
|
|
const reldata = ref([]);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
//表格长按开始
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const rulerTouchStart = (item : any, index0 : number, index1 : number, e : any) => {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
scrollTop.value = moveDownNumber.value;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
redNameindex0.value = [];
|
|
|
|
|
let index1Number = -1
|
2025-03-14 17:30:56 +08:00
|
|
|
|
moveX.value = Math.floor(e.touches[0].pageX);
|
|
|
|
|
moveY.value = Math.floor(e.touches[0].pageY);
|
2025-03-07 17:26:02 +08:00
|
|
|
|
timer.value = setTimeout(() => {
|
2025-03-11 17:27:40 +08:00
|
|
|
|
if (item.value) {
|
2025-03-26 17:34:08 +08:00
|
|
|
|
timearr.value.forEach((element0 : any, index0 : number) => {
|
|
|
|
|
element0.children.forEach((element1 : any) => {
|
|
|
|
|
if (element1.serve === item.serve && element1.value) {
|
|
|
|
|
redNameindex0.value.push(index0)
|
|
|
|
|
}
|
|
|
|
|
if (element1.value) {
|
|
|
|
|
index1Number = index0
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
if (redNameindex0.value.length) {
|
|
|
|
|
redNameindex1.value = index1
|
|
|
|
|
} else {
|
|
|
|
|
redNameindex1.value = index1Number + 1
|
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
flyNumber.value.serve = item.serve
|
2025-03-14 17:30:56 +08:00
|
|
|
|
flyNumber.value.index0 = index0 + (currentNumber.value * 6);
|
|
|
|
|
flyNumber.value.index1 = index1;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
indexsave.value = [-1, -1]
|
2025-03-24 17:37:51 +08:00
|
|
|
|
reldata.value = []
|
2025-03-21 17:36:27 +08:00
|
|
|
|
isTuoing.value = true;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const query = uni.createSelectorQuery()
|
|
|
|
|
query
|
|
|
|
|
.selectAll('.super-card-time-card')
|
|
|
|
|
.boundingClientRect((data : any) => {
|
|
|
|
|
data.forEach(async (res : any) => {
|
|
|
|
|
// 根据你的条件筛选元素
|
2025-03-21 17:36:27 +08:00
|
|
|
|
if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140) {
|
|
|
|
|
shakyTable.value = true;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
reldata.value.push(res)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.exec()
|
2025-03-24 17:37:51 +08:00
|
|
|
|
emit('saveruler', item, reldata.value);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
}, 100); // 2秒后触发
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
const rulerTouchMove = (e : any) => {
|
|
|
|
|
const moveXa = Math.floor(e.touches[0].pageX);
|
|
|
|
|
const moveYa = Math.floor(e.touches[0].pageY);
|
|
|
|
|
// 计算移动距离
|
|
|
|
|
if (
|
|
|
|
|
Math.abs(moveXa - moveX.value) > 0 ||
|
|
|
|
|
Math.abs(moveYa - moveY.value) > 0
|
|
|
|
|
) {
|
|
|
|
|
// 移动时取消长按计时器
|
|
|
|
|
if (timer.value) {
|
|
|
|
|
clearTimeout(timer.value);
|
|
|
|
|
timer.value = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
//表格长按结束
|
|
|
|
|
const rulerTouchEnd = () => {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
isTuoing.value = false;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
if (timer.value) {
|
|
|
|
|
clearTimeout(timer.value);
|
|
|
|
|
timer.value = null;
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const deleteRuler = (index0 : number, index1 : number) => {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
timearr.value[index0].children[index1] = { value: "" };
|
2025-03-14 17:30:56 +08:00
|
|
|
|
isopen.value = false;
|
|
|
|
|
flyNumber.value.index0 = 999;
|
|
|
|
|
flyNumber.value.index1 = 999;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
let emptyChildIndices = [];
|
|
|
|
|
let emptyChildNumber = 0;
|
|
|
|
|
timearr.value.forEach((res : any, rowIndex : number) => {
|
|
|
|
|
emptyChildIndices = [];
|
|
|
|
|
emptyChildNumber = res.children.length;
|
|
|
|
|
// 遍历 res.children 数组中的每个子元素 child
|
|
|
|
|
res.children.forEach((child, index) => {
|
|
|
|
|
// 检查 child 的 value 属性是否为空
|
|
|
|
|
if (child.value === null || child.value === '' || child.value === undefined) {
|
|
|
|
|
// 如果是空值,检查其他 res.children 中相同索引的元素
|
|
|
|
|
const isEmptyInAllRows = timearr.value.every((otherRes) => {
|
|
|
|
|
const otherChild = otherRes.children[index];
|
|
|
|
|
return otherChild === undefined || otherChild.value === null || otherChild.value === '' || otherChild.value === undefined;
|
|
|
|
|
});
|
|
|
|
|
// 如果在所有行中该位置的 value 都为空,记录该索引
|
|
|
|
|
if (isEmptyInAllRows) {
|
|
|
|
|
emptyChildIndices.push(index);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
if (emptyChildNumber > 4 && emptyChildIndices.length > 1) {
|
|
|
|
|
timearr.value.forEach((res : any, rowIndex : number) => {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
res.children.splice(emptyChildIndices[0], 1)
|
2025-03-17 17:34:36 +08:00
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
timearr.value.forEach((res : any, rowIndex : number) => {
|
|
|
|
|
res.children.splice(emptyChildIndices[0], 1);
|
|
|
|
|
res.children.push({ value: '' })
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
deleteisopen.value = false;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
2025-03-12 15:22:01 +08:00
|
|
|
|
const longPressTimer = ref(null);
|
|
|
|
|
const isScrolling = ref(false)
|
|
|
|
|
//长按计时器
|
|
|
|
|
let scrollTimeout = null
|
|
|
|
|
|
|
|
|
|
function handleScroll(e) {
|
|
|
|
|
isScrolling.value = true
|
|
|
|
|
// 清除之前的定时器
|
|
|
|
|
if (scrollTimeout) clearTimeout(scrollTimeout)
|
|
|
|
|
// 设置新的定时器
|
|
|
|
|
scrollTimeout = setTimeout(() => {
|
|
|
|
|
isScrolling.value = false;
|
|
|
|
|
}, 400)
|
|
|
|
|
}
|
|
|
|
|
const isBack = ref(false)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const saveX = ref(0);
|
|
|
|
|
const saveY = ref(0);
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const isTuoing = ref(false);
|
|
|
|
|
//给红色表格用
|
|
|
|
|
const redNameindex0 = ref([]);
|
2025-03-26 17:34:08 +08:00
|
|
|
|
const redNameindex1 = ref(-1);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
//左下菜单长按开始
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const handleTouchStart = (item : string, index : number, e : any) => {
|
2025-03-24 17:37:51 +08:00
|
|
|
|
scrollTop.value = moveDownNumber.value;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
shakyTable.value = false
|
2025-03-14 17:30:56 +08:00
|
|
|
|
saveX.value = Math.floor(e.touches[0].pageX);
|
|
|
|
|
saveY.value = Math.floor(e.touches[0].pageY);
|
2025-03-26 17:34:08 +08:00
|
|
|
|
longPressTimer.value = setTimeout(()=>{
|
|
|
|
|
let noHave = false;
|
|
|
|
|
timearr.value[0].children.forEach((element : any,index0:number) => {
|
|
|
|
|
if (element.serve === item) {
|
|
|
|
|
scrollTop.value = 0
|
|
|
|
|
scrollTop.value = index0 * 104
|
|
|
|
|
noHave = true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
if(!noHave){
|
|
|
|
|
scrollTop.value = 0
|
|
|
|
|
scrollTop.value = 999
|
|
|
|
|
}
|
|
|
|
|
},190)
|
|
|
|
|
|
|
|
|
|
|
2025-03-12 15:22:01 +08:00
|
|
|
|
//执行方法
|
|
|
|
|
longPressTimer.value = setTimeout(() => {
|
2025-03-26 17:34:08 +08:00
|
|
|
|
redNameindex0.value = [];
|
2025-03-12 15:22:01 +08:00
|
|
|
|
if (isScrolling.value) return
|
2025-03-26 17:34:08 +08:00
|
|
|
|
let index1save = -1;
|
|
|
|
|
let indexanthersave = -1;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
timearr.value.forEach((element0 : any, index0 : number) => {
|
2025-03-26 17:34:08 +08:00
|
|
|
|
element0.children.forEach((element1 : any, index1 : number) => {
|
2025-03-24 17:37:51 +08:00
|
|
|
|
if (element1.serve === item && element1.value) {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
redNameindex0.value.push(index0)
|
2025-03-26 17:34:08 +08:00
|
|
|
|
index1save = index1
|
|
|
|
|
}
|
|
|
|
|
if (element1.value) {
|
|
|
|
|
if (index1 > indexanthersave) {
|
|
|
|
|
indexanthersave = index1
|
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// console.log("1111",indexanthersave)
|
|
|
|
|
if (redNameindex0.value.length) {
|
|
|
|
|
redNameindex1.value = index1save
|
|
|
|
|
} else {
|
|
|
|
|
redNameindex1.value = indexanthersave + 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// redName.value = item;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
isBack.value = true;
|
|
|
|
|
downmenuIndex.value = index
|
2025-03-14 17:30:56 +08:00
|
|
|
|
indexsave.value = [-1, -1]
|
2025-03-21 17:36:27 +08:00
|
|
|
|
isTuoing.value = true;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
// const reldata = []
|
|
|
|
|
reldata.value = []
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const query = uni.createSelectorQuery()
|
|
|
|
|
query
|
|
|
|
|
.selectAll('.super-card-time-card')
|
|
|
|
|
.boundingClientRect((data : any) => {
|
|
|
|
|
data.forEach((res : any) => {
|
|
|
|
|
// 根据你的条件筛选元素
|
2025-03-21 17:36:27 +08:00
|
|
|
|
if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140) {
|
2025-03-24 17:37:51 +08:00
|
|
|
|
reldata.value.push(res)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
2025-03-12 15:22:01 +08:00
|
|
|
|
})
|
2025-03-14 17:30:56 +08:00
|
|
|
|
.exec()
|
2025-03-24 17:37:51 +08:00
|
|
|
|
emit('savename', item, reldata.value);
|
2025-03-12 15:22:01 +08:00
|
|
|
|
}, 200)
|
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
function isblue() {
|
|
|
|
|
if (((!openOp.value) && cardsumit.value.startTime) || (openOp.value === 1 && cardsumit.value.startTime && (cardsumit.value.weekTime || cardsumit.value.monthTime)) || openOp.value === 2) {
|
|
|
|
|
return true
|
|
|
|
|
} else {
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const handleTouchMove = (e : any) => {
|
|
|
|
|
const moveX = Math.floor(e.touches[0].pageX);
|
|
|
|
|
const moveY = Math.floor(e.touches[0].pageY);
|
|
|
|
|
// 计算移动距离
|
|
|
|
|
if (
|
|
|
|
|
Math.abs(moveX - saveX.value) > 0 ||
|
|
|
|
|
Math.abs(moveY - saveY.value) > 0
|
|
|
|
|
) {
|
|
|
|
|
if (longPressTimer.value) {
|
|
|
|
|
clearTimeout(longPressTimer.value)
|
|
|
|
|
longPressTimer.value = null
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-12 15:22:01 +08:00
|
|
|
|
const handleTouchEnd = () => {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
isTuoing.value = false;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
if (longPressTimer.value) {
|
|
|
|
|
clearTimeout(longPressTimer.value)
|
|
|
|
|
longPressTimer.value = null
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const bottomTimer = ref(null);
|
|
|
|
|
const bottomisShaking = ref(false);
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const bottomTouchStart = (e) => {
|
|
|
|
|
saveX.value = Math.floor(e.touches[0].pageX);
|
|
|
|
|
saveY.value = Math.floor(e.touches[0].pageY);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
// 2秒后触发抖动效果
|
|
|
|
|
bottomTimer.value = setTimeout(() => {
|
|
|
|
|
bottomisShaking.value = true
|
|
|
|
|
}, 500)
|
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const bottomTouchMove = (e) => {
|
|
|
|
|
const moveX = Math.floor(e.touches[0].pageX);
|
|
|
|
|
const moveY = Math.floor(e.touches[0].pageY);
|
|
|
|
|
// 计算移动距离
|
|
|
|
|
if (
|
|
|
|
|
Math.abs(moveX - saveX.value) > 0 ||
|
|
|
|
|
Math.abs(moveY - saveY.value) > 0
|
|
|
|
|
) {
|
|
|
|
|
if (bottomTimer.value) {
|
|
|
|
|
clearTimeout(bottomTimer.value)
|
|
|
|
|
bottomTimer.value = null
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const bottomTouchEnd = () => {
|
|
|
|
|
if (bottomTimer.value) {
|
|
|
|
|
clearTimeout(bottomTimer.value)
|
|
|
|
|
bottomTimer.value = null
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const openValue = ref({
|
|
|
|
|
time: "",
|
|
|
|
|
array: []
|
|
|
|
|
})
|
|
|
|
|
const cardsumit = ref({
|
|
|
|
|
op: {
|
|
|
|
|
name: "",
|
|
|
|
|
index: [-1, -1, -1],
|
|
|
|
|
},
|
|
|
|
|
startTime: "",
|
|
|
|
|
monthTime: "",
|
|
|
|
|
weekTime: ""
|
|
|
|
|
})
|
|
|
|
|
const openOp = ref(0);
|
|
|
|
|
const clickOp = (index : number, name : string, op : number) => {
|
|
|
|
|
cardsumit.value.startTime = ""
|
|
|
|
|
cardsumit.value.monthTime = ""
|
|
|
|
|
cardsumit.value.weekTime = ""
|
2025-03-17 17:34:36 +08:00
|
|
|
|
if (cardsumit.value.op.index[2] === index) {
|
|
|
|
|
cardsumit.value.op.index[2] = -1;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
cardsumit.value.op.name = ""
|
|
|
|
|
openOp.value = -1
|
|
|
|
|
} else {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
cardsumit.value.op.index[2] = index
|
2025-03-14 17:30:56 +08:00
|
|
|
|
cardsumit.value.op.name = name
|
|
|
|
|
openOp.value = op
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const clickTime = (index : string) => {
|
|
|
|
|
if (cardsumit.value.startTime == index) {
|
|
|
|
|
cardsumit.value.startTime = ""
|
|
|
|
|
} else {
|
|
|
|
|
cardsumit.value.startTime = index
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const clickweek = (index : string) => {
|
|
|
|
|
if (cardsumit.value.weekTime == index) {
|
|
|
|
|
cardsumit.value.weekTime = ""
|
|
|
|
|
} else {
|
|
|
|
|
cardsumit.value.weekTime = index
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const clickmonth = (index : string) => {
|
|
|
|
|
if (cardsumit.value.monthTime == index) {
|
|
|
|
|
cardsumit.value.monthTime = ""
|
|
|
|
|
} else {
|
|
|
|
|
cardsumit.value.monthTime = index
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const indexsave = ref([-1, -1]);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
//表格拖动结束
|
|
|
|
|
const rulerEnd = async (res : any) => {
|
2025-03-12 15:22:01 +08:00
|
|
|
|
isBack.value = false;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
if (props.liang.index0 !== 999 && res) {
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// console.log("cccc",redNameindex0.value,props.liang.index0)
|
|
|
|
|
if (redNameindex0.value.includes(props.liang.index0 + (currentNumber.value * 6)) || redNameindex1.value !== props.liang.index1) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
cardsumit.value = {
|
|
|
|
|
op: {
|
|
|
|
|
name: "",
|
|
|
|
|
index: [-1, -1, -1],
|
|
|
|
|
},
|
|
|
|
|
startTime: "",
|
|
|
|
|
monthTime: "",
|
|
|
|
|
weekTime: ""
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
songisopacity.value = false;
|
|
|
|
|
songisopen.value = true;
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
songisopacity.value = true
|
|
|
|
|
}, 200)
|
2025-03-17 17:34:36 +08:00
|
|
|
|
cardsumit.value.op.index[0] = upmenuIndex.value
|
|
|
|
|
cardsumit.value.op.index[1] = downmenuIndex.value
|
2025-03-14 17:30:56 +08:00
|
|
|
|
openValue.value.time = timearr.value[props.liang.index0 + (currentNumber.value * 6)].time;
|
|
|
|
|
openValue.value.array = bigArray[upmenuIndex.value].data[downmenuIndex.value].data
|
|
|
|
|
indexsave.value = [props.liang.index0 + (currentNumber.value * 6), props.liang.index1]
|
|
|
|
|
clickOp(0, openValue.value.array[0].type, openValue.value.array[0].op)
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// (长按表格后)表格拖动结束
|
2025-03-21 17:36:27 +08:00
|
|
|
|
const rulerMoveEnd = (object : any) => {
|
|
|
|
|
if (props.liang.index0 !== 999 && object.type) {
|
2025-03-26 17:34:08 +08:00
|
|
|
|
if (redNameindex0.value.includes(props.liang.index0 + (currentNumber.value * 6)) || redNameindex1.value !== props.liang.index1) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
indexsave.value = [props.liang.index0 + (currentNumber.value * 6), props.liang.index1]
|
|
|
|
|
let savaIndex = -1;
|
|
|
|
|
let emptyChildIndices = [];
|
|
|
|
|
timearr.value.forEach((res : any, rowIndex : number) => {
|
|
|
|
|
// 检测行列空则去除
|
|
|
|
|
emptyChildIndices = [];
|
|
|
|
|
// 遍历 res.children 数组中的每个子元素 child
|
|
|
|
|
res.children.forEach((child, index) => {
|
|
|
|
|
// 检查 child 的 value 属性是否为空
|
|
|
|
|
if (child.value === null || child.value === '' || child.value === undefined) {
|
|
|
|
|
// 如果是空值,检查其他 res.children 中相同索引的元素
|
|
|
|
|
const isEmptyInAllRows = timearr.value.every((otherRes) => {
|
|
|
|
|
const otherChild = otherRes.children[index];
|
|
|
|
|
return otherChild === undefined || otherChild.value === null || otherChild.value === '' || otherChild.value === undefined;
|
|
|
|
|
});
|
|
|
|
|
// 如果在所有行中该位置的 value 都为空,记录该索引
|
|
|
|
|
if (isEmptyInAllRows) {
|
|
|
|
|
emptyChildIndices.push(index);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
// 检测是否已经没有东西了
|
|
|
|
|
res.children.forEach((item : any, index : number) => {
|
|
|
|
|
if (item.serve == object.serve) {
|
|
|
|
|
savaIndex = index
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
if (savaIndex === -1) {
|
|
|
|
|
//如果有东西,则自动顶到下一排空行
|
|
|
|
|
savaIndex = emptyChildIndices[0]
|
|
|
|
|
}
|
|
|
|
|
let haveAnyItem = 0;
|
|
|
|
|
let saveServe = "";
|
|
|
|
|
timearr.value.forEach((element : any) => {
|
|
|
|
|
if (element.children[0].value) {
|
|
|
|
|
haveAnyItem++
|
|
|
|
|
saveServe = element.children[0].serve
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
//防止覆盖serve
|
|
|
|
|
if (haveAnyItem > 1) {
|
|
|
|
|
timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { value: '', serve: saveServe }
|
|
|
|
|
} else {
|
|
|
|
|
timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { value: '' }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
timearr.value[indexsave.value[0]].children[savaIndex] = object
|
|
|
|
|
// 直接转换 time 值,假设原来的 time 是类似 "08" 的字符串
|
|
|
|
|
// 修改 object 内的 time 值
|
|
|
|
|
// 获取父级时间的小时部分(例如 "08")
|
|
|
|
|
// 获取父级时间的小时部分,并转换成数字以去掉首位 0
|
|
|
|
|
const parentHour = parseInt(timearr.value[indexsave.value[0]].time, 10)
|
|
|
|
|
|
|
|
|
|
// 修改 object.time 的小时部分,保留分钟部分不变
|
|
|
|
|
object.time = object.time
|
|
|
|
|
.split('-')
|
|
|
|
|
.map(item => {
|
|
|
|
|
const parts = item.split(':')
|
|
|
|
|
return `${parentHour}:${parts[1]}`
|
|
|
|
|
})
|
|
|
|
|
.join('-')
|
|
|
|
|
// 检查是否有任意一个对象的 children 数组最后一个对象的 value 有值
|
|
|
|
|
const shouldAdd = timearr.value.some(obj => {
|
|
|
|
|
const children = obj.children;
|
|
|
|
|
return children[children.length - 1].value.trim() !== '';
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 如果满足条件,则为每个对象的 children 数组追加一个新对象
|
|
|
|
|
if (shouldAdd) {
|
|
|
|
|
timearr.value.forEach(obj => {
|
|
|
|
|
obj.children.push({ value: '' });
|
|
|
|
|
});
|
|
|
|
|
// 先将 scrollTop 重置为 0
|
|
|
|
|
scrollTop.value = 999
|
|
|
|
|
// 等待 DOM 更新完成
|
|
|
|
|
|
|
|
|
|
// 设置一个足够大的值让 scroll-view 滚动到底部
|
|
|
|
|
scrollTop.value = 9999
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const scrollContainer = ref(null)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const movetoruler = async () => {
|
|
|
|
|
songisopen.value = false;
|
|
|
|
|
isweek.value = true;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
let savaIndex = -1;
|
|
|
|
|
let emptyChildIndices = [];
|
2025-03-21 17:36:27 +08:00
|
|
|
|
if (openOp.value === 2) {
|
|
|
|
|
scrollLeft.value = 1;
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
scrollLeft.value = 0;
|
|
|
|
|
bottomItems.value.unshift({
|
|
|
|
|
name: cardsumit.value.op.name,
|
|
|
|
|
url: "/static/index/ou.png",
|
2025-03-24 17:37:51 +08:00
|
|
|
|
target: `#00a8ff`
|
2025-03-21 17:36:27 +08:00
|
|
|
|
})
|
2025-03-24 17:37:51 +08:00
|
|
|
|
setTimeout(() => {
|
|
|
|
|
bottomItems.value[0].target = `#fff`;
|
|
|
|
|
}, 1500)
|
|
|
|
|
setTimeout(() => {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
bottomItems.value[0].target = "";
|
2025-03-24 17:37:51 +08:00
|
|
|
|
}, 3000)
|
2025-03-21 17:36:27 +08:00
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
2025-03-17 17:34:36 +08:00
|
|
|
|
timearr.value.forEach((res : any, rowIndex : number) => {
|
|
|
|
|
emptyChildIndices = [];
|
|
|
|
|
// 遍历 res.children 数组中的每个子元素 child
|
|
|
|
|
res.children.forEach((child, index) => {
|
|
|
|
|
// 检查 child 的 value 属性是否为空
|
|
|
|
|
if (child.value === null || child.value === '' || child.value === undefined) {
|
|
|
|
|
// 如果是空值,检查其他 res.children 中相同索引的元素
|
|
|
|
|
const isEmptyInAllRows = timearr.value.every((otherRes) => {
|
|
|
|
|
const otherChild = otherRes.children[index];
|
|
|
|
|
return otherChild === undefined || otherChild.value === null || otherChild.value === '' || otherChild.value === undefined;
|
|
|
|
|
});
|
|
|
|
|
// 如果在所有行中该位置的 value 都为空,记录该索引
|
|
|
|
|
if (isEmptyInAllRows) {
|
|
|
|
|
emptyChildIndices.push(index);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
res.children.forEach((item : any, index : number) => {
|
|
|
|
|
if (item.serve == bigArray[cardsumit.value.op.index[0]].data[cardsumit.value.op.index[1]].type) {
|
|
|
|
|
savaIndex = index
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
if (savaIndex === -1) {
|
|
|
|
|
savaIndex = emptyChildIndices[0]
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
let saveserve = bigArray[cardsumit.value.op.index[0]].data[cardsumit.value.op.index[1]].type
|
|
|
|
|
await nextTick();
|
|
|
|
|
timearr.value.forEach((element : any, index : number) => {
|
|
|
|
|
element.children[savaIndex].serve = saveserve;
|
|
|
|
|
element.serve = saveserve
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if (!openOp.value) {
|
|
|
|
|
timearr.value[indexsave.value[0]].children[savaIndex].type = "日常";
|
|
|
|
|
} else if (openOp.value === 1) {
|
|
|
|
|
timearr.value[indexsave.value[0]].children[savaIndex].type = cardsumit.value.weekTime || (cardsumit.value.monthTime + '号');
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
timearr.value[indexsave.value[0]].children[savaIndex].value = cardsumit.value.op.name;
|
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
const startHour = Number(openValue.value.time)
|
|
|
|
|
const startMinute = Number(cardsumit.value.startTime)
|
|
|
|
|
const endMinute = startMinute + 10
|
|
|
|
|
|
|
|
|
|
const endHour = startHour + Math.floor(endMinute / 60)
|
|
|
|
|
const formattedStart = `${String(startHour)}:${String(startMinute).padStart(2, '0')}`
|
|
|
|
|
const formattedEnd = `${String(endHour)}:${String(endMinute % 60).padStart(2, '0')}`
|
2025-03-17 17:34:36 +08:00
|
|
|
|
if (savaIndex !== -1) {
|
|
|
|
|
|
|
|
|
|
timearr.value[indexsave.value[0]].children[savaIndex].time = `${formattedStart}-${formattedEnd}`;
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
timearr.value[indexsave.value[0]].children[indexsave.value[1]].time = `${formattedStart}-${formattedEnd}`;
|
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
|
|
|
|
|
// 检查是否有任意一个对象的 children 数组最后一个对象的 value 有值
|
|
|
|
|
const shouldAdd = timearr.value.some(obj => {
|
|
|
|
|
const children = obj.children;
|
|
|
|
|
return children[children.length - 1].value.trim() !== '';
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 如果满足条件,则为每个对象的 children 数组追加一个新对象
|
|
|
|
|
if (shouldAdd) {
|
|
|
|
|
timearr.value.forEach(obj => {
|
|
|
|
|
obj.children.push({ value: '' });
|
|
|
|
|
});
|
|
|
|
|
// 先将 scrollTop 重置为 0
|
|
|
|
|
scrollTop.value = 999
|
|
|
|
|
// 等待 DOM 更新完成
|
|
|
|
|
await nextTick()
|
|
|
|
|
// 设置一个足够大的值让 scroll-view 滚动到底部
|
|
|
|
|
scrollTop.value = 9999
|
2025-03-26 17:34:08 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// console.log("?????", timearr.value[0].children)
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
2025-03-24 17:37:51 +08:00
|
|
|
|
const routerPush = () => {
|
|
|
|
|
uni.setStorageSync("timearr", timearr.value)
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: `/pages/timeMatrix/index?currentNumber=${currentNumber.value}`
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// 暂存器
|
|
|
|
|
const saveRulerTime = ref({
|
|
|
|
|
index0: -1,
|
|
|
|
|
index1: -1
|
|
|
|
|
})
|
|
|
|
|
const targetRuler = ref({
|
|
|
|
|
|
|
|
|
|
index0: -1,
|
2025-03-24 17:37:51 +08:00
|
|
|
|
index1: -1,
|
|
|
|
|
current: -1,
|
2025-03-26 17:34:08 +08:00
|
|
|
|
bordershow: true
|
2025-03-24 17:37:51 +08:00
|
|
|
|
})
|
2025-03-26 17:34:08 +08:00
|
|
|
|
|
2025-03-24 17:37:51 +08:00
|
|
|
|
const whereEvent = (data : any) => {
|
2025-03-26 17:34:08 +08:00
|
|
|
|
scrollTop.value = 0
|
|
|
|
|
scrollTop.value = data.index1 * 104
|
|
|
|
|
|
|
|
|
|
if (currentNumber.value === Math.floor(data.index0 / 6)) {
|
|
|
|
|
targetRuler.value.index0 = data.index0 - currentNumber.value * 6;
|
|
|
|
|
targetRuler.value.index1 = data.index1;
|
|
|
|
|
saveRulerTime.value.index0 = targetRuler.value.index0;
|
|
|
|
|
saveRulerTime.value.index1 = targetRuler.value.index1;
|
|
|
|
|
targetRuler.value.current = currentNumber.value
|
|
|
|
|
targetRuler.value.bordershow = false;
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
targetRuler.value.index0 = -1;
|
|
|
|
|
targetRuler.value.index1 = -1;
|
|
|
|
|
targetRuler.value.current = -1
|
|
|
|
|
}, 400)
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
targetRuler.value.bordershow = true;
|
|
|
|
|
saveRulerTime.value.index0 = -1;
|
|
|
|
|
saveRulerTime.value.index1 = -1;
|
|
|
|
|
}, 1000)
|
|
|
|
|
} else {
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
currentNumber.value = Math.floor(data.index0 / 6);
|
|
|
|
|
}, 100)
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
targetRuler.value.index0 = data.index0 - currentNumber.value * 6;
|
|
|
|
|
targetRuler.value.index1 = data.index1;
|
|
|
|
|
saveRulerTime.value.index0 = targetRuler.value.index0;
|
|
|
|
|
saveRulerTime.value.index1 = targetRuler.value.index1;
|
|
|
|
|
targetRuler.value.current = currentNumber.value
|
|
|
|
|
targetRuler.value.bordershow = false;
|
|
|
|
|
}, 800)
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
targetRuler.value.index0 = -1;
|
|
|
|
|
targetRuler.value.index1 = -1;
|
|
|
|
|
targetRuler.value.current = -1
|
|
|
|
|
}, 1400)
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
targetRuler.value.bordershow = true;
|
|
|
|
|
saveRulerTime.value.index0 = -1;
|
|
|
|
|
saveRulerTime.value.index1 = -1;
|
|
|
|
|
}, 2200)
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-24 17:37:51 +08:00
|
|
|
|
}
|
|
|
|
|
onShow(() => {
|
|
|
|
|
uni.$on('where', whereEvent);
|
|
|
|
|
})
|
|
|
|
|
onHide(() => {
|
|
|
|
|
|
|
|
|
|
uni.$off('where', whereEvent);
|
|
|
|
|
});
|
2025-03-11 17:27:40 +08:00
|
|
|
|
defineExpose({
|
2025-03-21 17:36:27 +08:00
|
|
|
|
rulerEnd,
|
|
|
|
|
rulerMoveEnd,
|
2025-03-24 17:37:51 +08:00
|
|
|
|
nextItems,
|
2025-03-11 17:27:40 +08:00
|
|
|
|
})
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
const moveNumber = ref({
|
|
|
|
|
index0: 999,
|
|
|
|
|
index1: 999
|
|
|
|
|
})
|
2025-03-05 17:29:32 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
const timearr = ref([
|
|
|
|
|
{
|
|
|
|
|
time: '00',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '01',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '02',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '03',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '04',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '05',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '06',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '07',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '08',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '09',
|
|
|
|
|
children: [
|
2025-03-12 15:22:01 +08:00
|
|
|
|
{
|
2025-03-17 17:34:36 +08:00
|
|
|
|
value: '',
|
|
|
|
|
// type: '日常',
|
|
|
|
|
// time: '9:00-9:30',
|
|
|
|
|
|
2025-03-12 15:22:01 +08:00
|
|
|
|
},
|
|
|
|
|
{
|
2025-03-17 17:34:36 +08:00
|
|
|
|
value: '',
|
|
|
|
|
// type: '周一',
|
|
|
|
|
// time: '9:00-9:33',
|
|
|
|
|
// serve:''
|
2025-03-12 15:22:01 +08:00
|
|
|
|
},
|
2025-03-11 17:27:40 +08:00
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '10',
|
|
|
|
|
children: [
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{ value: '' },
|
2025-03-11 17:27:40 +08:00
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '11',
|
|
|
|
|
children: [
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{ value: '' },
|
2025-03-11 17:27:40 +08:00
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '12',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{ value: '' },
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '13',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '14',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '15',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '16',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '17',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '18',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '19',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '20',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '21',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '22',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
time: '23',
|
|
|
|
|
children: [
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
|
|
|
|
{ value: '' },
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{ value: '' },
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
])
|
2025-03-14 17:30:56 +08:00
|
|
|
|
// 切割bigArray
|
|
|
|
|
function splitString(str) {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// 使用正则表达式找到所有括号的内容
|
|
|
|
|
let result = [];
|
|
|
|
|
let remainingStr = str;
|
|
|
|
|
|
|
|
|
|
// 正则匹配最外层括号(支持全角和半角)
|
|
|
|
|
let regex = /([^((]*)[((]([^))]+)[))]/;
|
|
|
|
|
|
|
|
|
|
while (regex.test(remainingStr)) {
|
|
|
|
|
let match = remainingStr.match(regex);
|
|
|
|
|
if (match) {
|
|
|
|
|
// 添加括号前的部分(去掉空白)
|
|
|
|
|
if (match[1].trim()) {
|
|
|
|
|
result.push(match[1].trim());
|
|
|
|
|
}
|
|
|
|
|
// 添加括号内的内容
|
|
|
|
|
if (match[2].trim()) {
|
|
|
|
|
result.push(match[2].trim());
|
|
|
|
|
}
|
|
|
|
|
// 更新剩余的字符串
|
|
|
|
|
remainingStr = remainingStr.replace(match[0], '').trim();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果最后还有剩余部分,也加入结果
|
|
|
|
|
if (remainingStr.trim()) {
|
|
|
|
|
result.push(remainingStr.trim());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
const bigArray =
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
"type": "清洁照料",
|
|
|
|
|
"data": [
|
|
|
|
|
{
|
|
|
|
|
"type": "口腔清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备洁具(口腔)", "data": "为老人提供口腔清洁器具,牙膏牙刷及水杯.看护完成" },
|
|
|
|
|
{ "type": "协助清洁(口腔)", "data": "准备水杯.牙刷牙膏.纸巾.协助完成清洁." },
|
|
|
|
|
{ "type": "义齿清洁(口腔)", "data": "准备凉开水浸泡.取下流水冲洗.盐水棉球擦拭口腔.漱口.水.协助清洁" },
|
|
|
|
|
{ "type": "棉球清洁(口腔)", "data": "准备好盐水棉球.镊子.止血钳.压舌板.垫巾.手电筒.完成清洁" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "头部清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备洁具(头部)", "data": "准备温水.一次性面巾.洗发水.清洗头部." },
|
|
|
|
|
{ "type": "协助洗头", "data": "准备温水.毛巾.洗发水.清洗头部.擦干头部." },
|
|
|
|
|
{ "type": "卧式洗头", "data": "" },
|
|
|
|
|
{ "type": "擦头", "data": "" },
|
|
|
|
|
{ "type": "刮头", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "面部清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备洁具(面部)", "data": "" },
|
|
|
|
|
{ "type": "协助洁面", "data": "准备温水.一次性面巾.洁面乳.清洁面部.涂抹面霜.棉签擦拭耳朵.鼻孔." }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "躯干清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备洁具(躯干)", "data": "准备温水.一次性面巾.香皂.换洗衣物.清洁皮肤.完成后涂抹身体保湿乳." },
|
|
|
|
|
{ "type": "协助清洁(躯干)", "data": "" },
|
|
|
|
|
{ "type": "卧床清洁(躯干)", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "四肢清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备洁具(四肢)", "data": "" },
|
|
|
|
|
{ "type": "协助清洁(四肢)", "data": "准备温水.一次性面巾.香皂.清洁后涂抹身体保湿乳." },
|
|
|
|
|
{ "type": "卧床清洁(四肢)", "data": "" },
|
|
|
|
|
{ "type": "肌张力高(清洁)", "data": "准备温水.一次性面巾.香皂.清洁后涂抹身体保湿乳." }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "会阴清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "会阴清洁(男)", "data": "准备手套.盐水棉球.碘伏棉球.干棉球.环形完成清洁" },
|
|
|
|
|
{ "type": "会阴清洁(女)", "data": "准备手套.碘伏棉球.盐水棉球.干棉球.纵向完成擦拭" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "肛周清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "肛周清洁", "data": "准备手套.碘伏棉球.盐水棉球.干棉球完成清洁" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "手清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "洗手", "data": "" },
|
|
|
|
|
{ "type": "泡手", "data": "准备温水水盆.洗手液.一次性面巾.清洁后涂抹润手霜" },
|
|
|
|
|
{ "type": "准备洁具", "data": "" },
|
|
|
|
|
{ "type": "协助洗手", "data": "" },
|
|
|
|
|
{ "type": "强直屈曲洗手", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "足清洁",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "泡脚", "data": "准备温水水盆.毛巾完成清洁后涂抹保湿乳" },
|
|
|
|
|
{ "type": "卧式泡脚", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "剃须",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "修睫毛", "data": "" },
|
|
|
|
|
{ "type": "剃须", "data": "准备剃须液.剃须刀.一次性面巾.温水.协助剃须" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "修甲",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "角质增生(修甲)", "data": "准备指甲刀.纸巾.进行修剪" },
|
|
|
|
|
{ "type": "灰指甲(修甲)", "data": "准备专用指甲刀.纸巾.盐水棉球.进行修剪" },
|
|
|
|
|
{ "type": "正常(修甲)", "data": "准备指甲刀.纸巾.进行修剪" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "理发",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "理发", "data": "准备围巾.推子理发后.温水清洗." },
|
|
|
|
|
{ "type": "理发(颅骨缺损)", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "沐浴",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "床上沐浴", "data": "准备温水.一次性毛巾.香皂.洗发水.身体保湿乳协助清洗." },
|
|
|
|
|
{ "type": "深度清洁", "data": "准备温水.一次性面巾.洗发水.香皂.棉签.指甲刀.身体保湿乳.盐水棉球.完成清洁" },
|
|
|
|
|
{ "type": "浴间洗浴", "data": "准备平车.换洗衣物.浴巾.洗发水.澡巾.香皂.被子.完成清洁" },
|
|
|
|
|
{ "type": "床上沐浴(大体重)", "data": "" },
|
|
|
|
|
{ "type": "深度清洁(大体重)", "data": "" },
|
|
|
|
|
{ "type": "浴间洗浴(大体重)", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "气切消毒",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "内套管清洁", "data": "" },
|
|
|
|
|
{ "type": "更换气切纱布", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "饮食照料",
|
|
|
|
|
"data": [
|
|
|
|
|
{
|
|
|
|
|
"type": "正餐饮食",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备餐具", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助进餐(正常)", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助进餐(超时)", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "鼻胃管进餐", "data": "床头摇起45度角" },
|
|
|
|
|
{ "type": "鼻肠管进餐", "data": "床头摇起45度角" },
|
|
|
|
|
{ "type": "轮椅进餐", "data": "" },
|
|
|
|
|
{ "type": "轮椅进餐(大体重)", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "辅餐饮食",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备餐具", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助进餐(正常)", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助进餐(超时)", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "鼻胃管进餐", "data": "床头摇起45度角" },
|
|
|
|
|
{ "type": "鼻肠管进餐", "data": "床头摇起45度角" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "果汁饮食",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备餐具", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助进餐(正常)", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助进餐(超时)", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "鼻胃管进餐", "data": "床头摇起45度角" },
|
|
|
|
|
{ "type": "鼻肠管进餐", "data": "床头摇起45度角" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "饮水饮食",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "吸管喂药", "data": "" },
|
|
|
|
|
{ "type": "准备水杯", "data": "" },
|
|
|
|
|
{ "type": "协助饮水", "data": "" },
|
|
|
|
|
{ "type": "协助饮水(超时)", "data": "" },
|
|
|
|
|
{ "type": "鼻胃管饮水", "data": "床头摇起45度角" },
|
|
|
|
|
{ "type": "鼻肠管饮水", "data": "床头摇起45度角" },
|
|
|
|
|
{ "type": "准备水杯", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助饮水", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "协助饮水(超时)", "data": "按需床头摇起" },
|
|
|
|
|
{ "type": "鼻胃管饮水", "data": "" },
|
|
|
|
|
{ "type": "鼻肠管饮水", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "加餐饮食",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备餐具", "data": "" },
|
|
|
|
|
{ "type": "协助进餐", "data": "" },
|
|
|
|
|
{ "type": "协助进餐(超时)", "data": "" },
|
|
|
|
|
{ "type": "鼻胃管进餐", "data": "" },
|
|
|
|
|
{ "type": "胃肠管进餐", "data": "" },
|
|
|
|
|
{ "type": "准备餐具", "data": "" },
|
|
|
|
|
{ "type": "协助进餐", "data": "" },
|
|
|
|
|
{ "type": "协助进餐(超时)", "data": "" },
|
|
|
|
|
{ "type": "鼻胃管进餐", "data": "" },
|
|
|
|
|
{ "type": "胃肠管进餐", "data": "" },
|
|
|
|
|
{ "type": "食物加工", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "睡眠照料",
|
|
|
|
|
"data": [
|
|
|
|
|
{
|
|
|
|
|
"type": "巡视",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "巡视", "data": "巡视中.避免说话.走路轻." },
|
|
|
|
|
{ "type": "体位调整", "data": "巡视过程中发现老人体位不正确或踢蹬被褥,进行体位调整和盖被褥" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "体位调整",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "防坠床", "data": "" },
|
|
|
|
|
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥" },
|
|
|
|
|
{ "type": "睡姿调整", "data": "" }
|
|
|
|
|
]
|
2025-03-14 17:30:56 +08:00
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "睡眠指令",
|
|
|
|
|
"color": "#FFC363",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 0 },
|
2025-03-21 17:36:27 +08:00
|
|
|
|
{ "type": "被褥调整(超时1)(超时2)", "data": "老人踢蹬被褥,调成被褥", "op": 1 },
|
2025-03-14 17:30:56 +08:00
|
|
|
|
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 2 },
|
|
|
|
|
]
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "排泄照料",
|
|
|
|
|
"data": [
|
|
|
|
|
{
|
|
|
|
|
"type": "小便",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "更换尿袋", "data": "准备尿袋一次性面巾.温水.进行操作" },
|
|
|
|
|
{ "type": "更换隔尿垫", "data": "准备尿片.尿裤.温水.一次性面巾.进行操作" },
|
|
|
|
|
{ "type": "使用尿盆", "data": "准备尿盆.温水.一次性面巾进行操作" },
|
|
|
|
|
{ "type": "使用尿壶", "data": "准备尿壶.温水.一次性面巾.协助操作" },
|
|
|
|
|
{ "type": "协助入厕", "data": "准备轮椅.推至卫生间.协助如厕" },
|
|
|
|
|
{ "type": "坐便椅", "data": "准备坐便椅.手纸.床椅转移.协助如厕" },
|
|
|
|
|
{ "type": "留置尿袋", "data": "准备尿液指定容器夹闭尿管.将.尿液倒出后.关闭开关." },
|
|
|
|
|
{ "type": "更换纸尿裤", "data": "" },
|
|
|
|
|
{ "type": "热敷抚触排尿", "data": "" },
|
|
|
|
|
{ "type": "协助坐便椅", "data": "" },
|
|
|
|
|
{ "type": "更换尿片", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "大便",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "床上排便", "data": "准备尿片.尿裤.温水.一次性面巾.手纸.进行操作" },
|
|
|
|
|
{ "type": "协助坐便椅", "data": "准备坐便椅.手纸." },
|
|
|
|
|
{ "type": "协助入厕", "data": "准备轮椅" },
|
|
|
|
|
{ "type": "人工取便", "data": "准备排便手套.开塞露.温水.一次性面巾.手纸.尿片.尿裤." },
|
|
|
|
|
{ "type": "造瘘袋", "data": "准备手套.便器.温水." },
|
|
|
|
|
{ "type": "坐便椅", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "吸痰",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "口腔吸痰", "data": "准备吸痰器.吸痰管.泡管液.冲管水.盐水棉球.纱布.完成吸痰" },
|
|
|
|
|
{ "type": "气切吸痰", "data": "准备吸痰器.吸痰管.冲管水.泡管液.纱布块.完成操作" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "呕吐",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "呕吐", "data": "准备换洗衣物.被褥.吸痰器.吸痰管.冲管水.漱口水.纱布.完成操作." }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "引流",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "腹腔引流护理", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
"type": "日常照料",
|
|
|
|
|
"data": [
|
|
|
|
|
{
|
|
|
|
|
"type": "协助喂药",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "协助喂药", "data": "准备好服用药物.温水.看护服用" },
|
|
|
|
|
{ "type": "鼻饲喂药", "data": "床头摇起45度角,准备温水.灌注器.药物.匀速灌注." },
|
|
|
|
|
{ "type": "注射器/吸管喂药", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "床椅转移",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "床椅转移", "data": "准备轮椅.换好衣物手纸.水杯.食物.进行转移" },
|
|
|
|
|
{ "type": "床椅转移(大体重)", "data": "" },
|
|
|
|
|
{ "type": "协助床椅转移", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "压疮防护",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "一级压疮防护", "data": "准备好体位垫.整理好衣物.进行翻身.扣背" },
|
|
|
|
|
{ "type": "二级压疮防护", "data": "翻身扣背垫枕开始操作" },
|
|
|
|
|
{ "type": "三级压疮防护", "data": "带压疮翻身扣背垫枕.进行操作" },
|
2025-03-21 17:36:27 +08:00
|
|
|
|
{ "type": "一级压疮防护(大体重)(小体重)", "data": "" },
|
2025-03-11 17:27:40 +08:00
|
|
|
|
{ "type": "二级压疮防护(大体重)", "data": "" },
|
|
|
|
|
{ "type": "三级压疮防护(大体重)", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "轮椅防护",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "轮椅防护", "data": "准备好安全带.坐垫.1小内将长者抬起.放松肌肉." },
|
|
|
|
|
{ "type": "轮椅防护(大体重)", "data": "" },
|
|
|
|
|
{ "type": "轮椅防护", "data": "" },
|
|
|
|
|
{ "type": "床椅转移(大体重)", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "约束防护",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "约束位按摩(手)", "data": "约束位置用约束手套或束缚带.2小时.解开.放松." },
|
|
|
|
|
{ "type": "约束位按摩(足)", "data": "使用约束带.约束位置2小时按摩.用温水清洁." },
|
|
|
|
|
{ "type": "约束位按摩(全)", "data": "约束位置2小时放松.清洗." },
|
|
|
|
|
{ "type": "防护网约束", "data": "通过防护网对老人进行约束看护" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "按摩保健",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "协助行走", "data": "准备舒适鞋子.水杯.手纸.协助行走" },
|
|
|
|
|
{ "type": "放松按摩", "data": "手法放松.舒筋活血." },
|
|
|
|
|
{ "type": "心灵慰藉", "data": "陪同倾听.肢体放松.互动.安抚." },
|
|
|
|
|
{ "type": "躁狂", "data": "针对躁狂老人的狂燥期,发出喊叫,敲打等动作的忍受服务" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "更换衣物",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "准备衣物", "data": "准备舒适衣裤" },
|
|
|
|
|
{ "type": "协助更换", "data": "" },
|
|
|
|
|
{ "type": "肢体障碍(半侧)", "data": "" },
|
|
|
|
|
{ "type": "肢体障碍(全身)", "data": "" },
|
|
|
|
|
{ "type": "准备衣物", "data": "" },
|
|
|
|
|
{ "type": "协助更换", "data": "" },
|
|
|
|
|
{ "type": "肢体障碍(半侧)", "data": "" },
|
|
|
|
|
{ "type": "肢体障碍(全身)", "data": "" },
|
|
|
|
|
{ "type": "协助更换(大体重)", "data": "" },
|
|
|
|
|
{ "type": "肢体障碍(半侧)(大体重)", "data": "" },
|
|
|
|
|
{ "type": "肢体障碍(全测)(大体重)", "data": "" },
|
|
|
|
|
{ "type": "肢体障碍(半测)(大体重)", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "调整坐卧",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "坐起", "data": "为老人调整床位60度角" },
|
|
|
|
|
{ "type": "躺下", "data": "为老人调整床位180度角" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "殡仪服务",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "遗体净身", "data": "" },
|
|
|
|
|
{ "type": "遗体穿衣", "data": "" },
|
|
|
|
|
{ "type": "遗体转移", "data": "" },
|
|
|
|
|
{ "type": "床位消毒", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
2025-03-12 10:33:32 +08:00
|
|
|
|
"type": "换床上用品",
|
2025-03-11 17:27:40 +08:00
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "更换床上用品(全部)", "data": "" },
|
|
|
|
|
{ "type": "隔尿褥子更换", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "临终服务",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "临终护理", "data": "" }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "制氧机应用",
|
|
|
|
|
"data": [
|
|
|
|
|
{ "type": "制氧机吸氧", "data": "制氧机吸氧" },
|
|
|
|
|
{ "type": "制氧机维护", "data": "制氧机维护,清洁维护,更换湿化瓶" }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
2025-03-05 17:29:32 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="less" scoped>
|
2025-03-11 17:27:40 +08:00
|
|
|
|
.super-card {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
// align-items: center;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: calc(100% - 400rpx);
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// margin-top: 30rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.scroll-x {
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.super-card-container {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
/* 设置背景图和白色背景 */
|
|
|
|
|
background: url("/static/index/clearmountain.png") center/cover, rgba(255, 255, 255, 0.5);
|
|
|
|
|
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
|
|
|
|
background-blend-mode: screen;
|
|
|
|
|
isolation: isolate;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
width: 1650rpx;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
height: 920rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
border-radius: 20rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border: 2rpx solid #fff;
|
|
|
|
|
box-shadow: 10rpx 10rpx 20px rgba(0, 0, 0, 0.1);
|
2025-03-24 17:37:51 +08:00
|
|
|
|
position: relative;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.super-card-time {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// background-color: rgb(233, 239, 257);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
height: 80rpx;
|
|
|
|
|
width: 100rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border-right: 1rpx solid transparent;
|
|
|
|
|
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
font-weight: 700;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
z-index: -1;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.super-card-time-und {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
flex-direction: column;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border-right: 1rpx solid transparent;
|
|
|
|
|
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// z-index: -10;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.super-card-time-card {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
height: 209rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
width: calc(100%);
|
2025-03-24 17:37:51 +08:00
|
|
|
|
// transition: transform 0.5s ease-out, opacity 0.5s ease-out;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
transition: all 0.8s;
|
|
|
|
|
// border-top: 1rpx solid transparent;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
flex-direction: column;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// background-color: #f3f6fc;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
position: relative;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
2025-03-17 17:34:36 +08:00
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
2025-03-05 17:29:32 +08:00
|
|
|
|
.right-container {
|
|
|
|
|
width: calc(100% - 235rpx);
|
|
|
|
|
height: 100vh;
|
|
|
|
|
transition: opacity 1s ease;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
position: relative;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.move-font {
|
2025-03-07 17:26:02 +08:00
|
|
|
|
position: absolute;
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
2025-03-07 17:26:02 +08:00
|
|
|
|
.doctorsay-container-view {
|
|
|
|
|
width: 100%;
|
2025-03-05 17:29:32 +08:00
|
|
|
|
height: 1220rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-items {
|
|
|
|
|
width: 310rpx;
|
|
|
|
|
height: 1220rpx;
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-up {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
2025-03-07 17:26:02 +08:00
|
|
|
|
.doctorsay-container-card {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
background-color: rgb(221, 234, 250);
|
|
|
|
|
width: 130rpx;
|
|
|
|
|
height: 130rpx;
|
|
|
|
|
margin: 0 18rpx 15rpx 0rpx;
|
|
|
|
|
border-radius: 30rpx;
|
|
|
|
|
border: 2rpx solid rgb(221, 234, 250);
|
2025-03-11 17:27:40 +08:00
|
|
|
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
|
|
|
|
|
/* 右下角阴影 */
|
2025-03-07 17:26:02 +08:00
|
|
|
|
.doctorsay-container-card-img {
|
|
|
|
|
width: 75rpx;
|
|
|
|
|
height: 75rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-card-font {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
font-size: 30rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-card-font-dark {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
font-size: 30rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-down {
|
2025-03-12 10:33:32 +08:00
|
|
|
|
background-color: rgba(221, 234, 250);
|
|
|
|
|
backdrop-filter: blur(8rpx);
|
2025-03-07 17:26:02 +08:00
|
|
|
|
width: 290rpx;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
height: 900rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border-radius: 30rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
margin-top: 0rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
|
|
|
|
|
/* 右下角阴影 */
|
2025-03-07 17:26:02 +08:00
|
|
|
|
.doctorsay-container-scroll {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
height: 770rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-top {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
height: 80rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
margin-bottom: 20rpx;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
// margin-top: 40rpx;
|
|
|
|
|
.doctorsay-top-gun {
|
|
|
|
|
margin-top: 37rpx;
|
|
|
|
|
margin-left: 40rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
width: 13rpx;
|
|
|
|
|
height: 35rpx;
|
|
|
|
|
background: linear-gradient(to bottom, #04BCED, #0160CE);
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-top-font {
|
|
|
|
|
font-size: 34rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
margin-top: 34rpx;
|
|
|
|
|
}
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-button {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
height: 90rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
position: relative;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.doctorsay-container-text-target {
|
|
|
|
|
color: #016AD1;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
background-color: #c9e8ff;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 2rpx solid #fff;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
width: 300rpx;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
height: 100rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
text-align: center;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
font-size: 45rpx;
|
|
|
|
|
transition: all 0.4s ease-in-out;
|
|
|
|
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
z-index: 20;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-text {
|
|
|
|
|
background-color: #f3f6fc;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
border: 2rpx solid #fff;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
border-radius: 10rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
width: 250rpx;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
height: 75rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
text-align: center;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
transition: all 0.4s ease-in-out;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
font-size: 30rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// background: linear-gradient(to right, #dcdcf9 0%, #dbdcf8 100%);
|
|
|
|
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
2025-03-07 17:26:02 +08:00
|
|
|
|
.doctorsay-container-button-gun {
|
|
|
|
|
position: absolute;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
top: 19rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
left: 1rpx;
|
|
|
|
|
width: 10rpx;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
height: 50rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
background: linear-gradient(to bottom, #04BCED, #0160CE);
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
2025-03-12 10:33:32 +08:00
|
|
|
|
|
|
|
|
|
.doctorsay-container-button-uplight {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 40rpx;
|
|
|
|
|
left: 20rpx;
|
|
|
|
|
width: 250rpx;
|
|
|
|
|
height: 50rpx;
|
|
|
|
|
z-index: 21;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
transition: all 0.4s ease-in-out;
|
2025-03-12 10:33:32 +08:00
|
|
|
|
}
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-container {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border: 2rpx solid #fff;
|
|
|
|
|
width: 1726rpx;
|
|
|
|
|
height: 1340rpx;
|
|
|
|
|
// background-color: rgba(255, 255, 255, 0.7);
|
|
|
|
|
/* 设置背景图和白色背景 */
|
|
|
|
|
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.3);
|
|
|
|
|
backdrop-filter: blur(20rpx);
|
|
|
|
|
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
|
|
|
|
background-blend-mode: screen;
|
|
|
|
|
border-radius: 30rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
/* 右下角阴影 */
|
2025-03-07 17:26:02 +08:00
|
|
|
|
overflow: hidden;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.super-card-end {
|
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
.super-end-father {
|
|
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
flex-direction: column;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
.super-end-items-all {
|
|
|
|
|
width: calc(100% - 85rpx);
|
|
|
|
|
height: 200rpx;
|
|
|
|
|
margin-left: 40rpx;
|
|
|
|
|
margin-right: 40rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
.super-end-items {
|
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
width: calc(100% - 85rpx);
|
|
|
|
|
height: 200rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
|
|
|
|
|
.super-end-items-father {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
margin-right: 20rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
width: 150rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
height: 150rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
position: relative;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
background: linear-gradient(to bottom right, #fff 0%, #dcdcf9 50%, #dbdcf8 100%);
|
|
|
|
|
border-radius: 25rpx;
|
|
|
|
|
border: 2rpx solid #fff;
|
|
|
|
|
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
|
|
|
|
transition: all 1.5s ease-in-out;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
|
|
|
|
|
.super-end-items-father-close-father {
|
|
|
|
|
width: 40rpx;
|
|
|
|
|
height: 40rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
background-color: #0184db;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
position: absolute;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
top: 0rpx;
|
|
|
|
|
right: 0rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
z-index: 10;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// background-color: #fff;
|
|
|
|
|
// background: linear-gradient(to bottom right, #fff 0%, #e5d3fb 50%, #cfd9f6 100%);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.super-end-items-img-father {
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
border-radius: 50%;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// margin-bottom: 5rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// background-color: #fff;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
/* 让正方形变成圆 */
|
|
|
|
|
.super-end-items-img {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
width: 85rpx;
|
|
|
|
|
height: 85rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.super-end-items-img-father-active {
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// background-color: #fff;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
animation: shake 0.5s infinite;
|
|
|
|
|
|
|
|
|
|
/* 让正方形变成圆 */
|
|
|
|
|
.super-end-items-img {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
width: 85rpx;
|
|
|
|
|
height: 85rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.super-end-items-font {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
margin-top: -10rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
font-size: 25rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-11 17:27:40 +08:00
|
|
|
|
.super-end-font-father {
|
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// margin: 20rpx 0;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
margin-bottom: 10rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.super-end-font-gun {
|
|
|
|
|
margin-left: 40rpx;
|
|
|
|
|
margin-right: 20rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
margin-top: 5rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
width: 13rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
height: 40rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
background: linear-gradient(to bottom, #04BCED, #0160CE);
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.super-end-font-font {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
font-size: 38rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-title {
|
2025-03-07 17:26:02 +08:00
|
|
|
|
width: 100%;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
height: 105rpx;
|
|
|
|
|
/* 设置背景图和白色背景 */
|
|
|
|
|
// background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.7);
|
|
|
|
|
// border-bottom: 2rpx solid #fff;
|
|
|
|
|
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
|
|
|
|
// background-blend-mode: screen;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.doctorsay-container-right {
|
|
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
width: 400rpx;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
|
|
|
|
.doctorsay-container-juzhen {
|
|
|
|
|
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
|
|
|
|
color: #fff;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
padding: 10rpx 20rpx;
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
font-size: 27rpx;
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.doctorsay-container-button-father {
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-button-target {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
background-color: #3FA9F5;
|
|
|
|
|
color: #fff;
|
|
|
|
|
width: 140rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-button {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
width: 140rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-right-kuai-cheng {
|
|
|
|
|
background-color: #FFDBA1;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
height: 35rpx;
|
|
|
|
|
width: 35rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border-radius: 7rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-right-kuai-zi {
|
|
|
|
|
background-color: #7B61FF;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
height: 35rpx;
|
|
|
|
|
width: 35rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border-radius: 7rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-kuai-font {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
font-size: 32rpx;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
margin-right: 25rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.doctorsay-container-left {
|
2025-03-07 17:26:02 +08:00
|
|
|
|
display: flex;
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.doctorsay-container-left-gun {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
margin-top: 7rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
margin-left: 40rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
width: 13rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
height: 40rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
background: linear-gradient(to bottom, #04BCED, #0160CE);
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
|
|
|
|
.doctorsay-container-left-font {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
font-size: 38rpx;
|
2025-03-07 17:26:02 +08:00
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
2025-03-07 17:26:02 +08:00
|
|
|
|
}
|
2025-03-05 17:29:32 +08:00
|
|
|
|
}
|
2025-03-07 17:26:02 +08:00
|
|
|
|
|
2025-03-05 17:29:32 +08:00
|
|
|
|
.right-container-title-nav {
|
|
|
|
|
margin-top: 75rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
|
|
|
|
|
.right-icons {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
float: right;
|
|
|
|
|
height: 70rpx;
|
|
|
|
|
margin-right: 40rpx;
|
|
|
|
|
|
|
|
|
|
.right-icons-font {
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
margin-right: 10rpx;
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
margin-top: -30rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-icons-font-dark {
|
|
|
|
|
color: #fff;
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
margin-right: 10rpx;
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
margin-top: -30rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-icons-img {
|
|
|
|
|
width: 80rpx;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
margin-right: 10rpx;
|
|
|
|
|
margin-top: -40rpx;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-icons-img-icon {
|
|
|
|
|
width: 60rpx;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
margin-top: -10rpx;
|
|
|
|
|
margin-left: 8rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-container-title-no {
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-container-title-no-dark {
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
background: linear-gradient(to bottom, #FFFFFF, #B2C8E2);
|
|
|
|
|
-webkit-background-clip: text;
|
|
|
|
|
color: transparent;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-container-title-class {
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-container-title-class-dark {
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
background: linear-gradient(to bottom, #FFFFFF, #B2C8E2);
|
|
|
|
|
-webkit-background-clip: text;
|
|
|
|
|
color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-container-title-class-anhei-button {
|
|
|
|
|
float: right;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
border-radius: 30rpx;
|
|
|
|
|
margin-right: 30rpx;
|
|
|
|
|
width: 200rpx;
|
|
|
|
|
height: 50rpx;
|
|
|
|
|
background-color: black;
|
|
|
|
|
border: 2rpx solid;
|
|
|
|
|
|
|
|
|
|
.right-container-title-class-anhei {
|
|
|
|
|
font-size: 20rpx;
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
color: white;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-11 17:27:40 +08:00
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
.title-time-delete {
|
|
|
|
|
width: 55rpx;
|
|
|
|
|
height: 55rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
display: flex;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0rpx;
|
|
|
|
|
right: 0rpx;
|
|
|
|
|
z-index: 10;
|
|
|
|
|
background-color: #02abfe;
|
|
|
|
|
color: #fff;
|
|
|
|
|
z-index: 999;
|
|
|
|
|
font-size: 50rpx;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-12 15:22:01 +08:00
|
|
|
|
.title-time {
|
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
width: 100%;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
position: relative;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
|
2025-03-12 15:22:01 +08:00
|
|
|
|
.title-time-time {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
font-size: 32rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
margin-left: 40rpx;
|
|
|
|
|
margin-top: 12rpx;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-button {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
position: absolute;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
top: -4rpx;
|
|
|
|
|
right: -4rpx;
|
|
|
|
|
width: 65rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-zhejiao {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0rpx;
|
|
|
|
|
left: 5rpx;
|
|
|
|
|
width: 40rpx;
|
|
|
|
|
height: 40rpx;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
}
|
2025-03-21 17:36:27 +08:00
|
|
|
|
|
|
|
|
|
.title-time-font {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
position: absolute;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
top: 7rpx;
|
|
|
|
|
right: 5rpx;
|
|
|
|
|
font-size: 20rpx;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
color: #fff;
|
2025-03-12 15:22:01 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
.popup-delete {
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
backdrop-filter: blur(1rpx);
|
|
|
|
|
background-color: rgba(89, 109, 154, 0.4);
|
|
|
|
|
/* 添加毛玻璃效果 */
|
|
|
|
|
z-index: 999;
|
|
|
|
|
|
|
|
|
|
.popup-delete-content {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 515rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
// justify-content: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 800rpx;
|
|
|
|
|
height: 500rpx;
|
|
|
|
|
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.7);
|
2025-03-27 17:32:12 +08:00
|
|
|
|
background-blend-mode: screen;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border: 2rpx solid #fff;
|
|
|
|
|
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
|
|
|
|
border-radius: 30rpx;
|
|
|
|
|
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
|
|
|
|
transition: opacity 0.4s ease;
|
|
|
|
|
|
|
|
|
|
.popup-delete-img {
|
|
|
|
|
width: 250rpx;
|
|
|
|
|
height: 230rpx;
|
|
|
|
|
margin-top: 40rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.popup-delete-text {
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
color: #42474E;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.popup-delete-button {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
height: 90rpx;
|
|
|
|
|
margin-top: 30rpx;
|
|
|
|
|
|
|
|
|
|
.popup-delete-button-left {
|
|
|
|
|
background-color: rgb(2, 171, 254);
|
|
|
|
|
width: 200rpx;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.popup-delete-button-right {
|
|
|
|
|
background-color: #ced9e8;
|
|
|
|
|
width: 200rpx;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
.popup-overlay {
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
/* 添加毛玻璃效果 */
|
|
|
|
|
z-index: 999;
|
|
|
|
|
|
|
|
|
|
.popup-overlay-content {
|
|
|
|
|
position: absolute;
|
|
|
|
|
display: flex;
|
|
|
|
|
// justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 800rpx;
|
|
|
|
|
height: 390rpx;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
border-radius: 30rpx;
|
|
|
|
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
opacity: 0;
|
|
|
|
|
transition: opacity 0.4s ease;
|
|
|
|
|
|
|
|
|
|
.popup-overlay-content-left {
|
|
|
|
|
// background-color: red;
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 350rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
|
|
.popup-overlay-content-left-img {
|
|
|
|
|
width: 280rpx;
|
|
|
|
|
height: 180rpx;
|
|
|
|
|
margin-top: -30rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.popup-overlay-content-left-font {
|
|
|
|
|
// margin-top: 20rpx;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.popup-overlay-content-right {
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 450rpx;
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
.time-font {
|
|
|
|
|
font-size: 50rpx;
|
|
|
|
|
margin-top: 100rpx;
|
|
|
|
|
margin-bottom: 10rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
background: linear-gradient(to bottom, #7080A1, #263556);
|
|
|
|
|
-webkit-background-clip: text;
|
|
|
|
|
color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.time-text {
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
// font-weight: 700;
|
|
|
|
|
width: 380rpx;
|
|
|
|
|
margin-bottom: 50rpx;
|
|
|
|
|
line-height: 35rpx;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-richang {
|
|
|
|
|
background-color: #FFC363;
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 108rpx;
|
|
|
|
|
right: 50rpx;
|
|
|
|
|
padding: 5rpx;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-richangnot {
|
|
|
|
|
background-color: #7B61FF;
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 108rpx;
|
|
|
|
|
right: 50rpx;
|
|
|
|
|
padding: 5rpx;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-crush {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 20rpx;
|
|
|
|
|
right: 20rpx;
|
|
|
|
|
width: 70rpx;
|
|
|
|
|
height: 70rpx;
|
|
|
|
|
animation: shake 0.5s 3;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.popup-song {
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
backdrop-filter: blur(1rpx);
|
|
|
|
|
background-color: rgba(89, 109, 154, 0.4);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
/* 添加毛玻璃效果 */
|
|
|
|
|
z-index: 999;
|
|
|
|
|
|
|
|
|
|
.popup-song-contain {
|
|
|
|
|
position: absolute;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
right: 270rpx;
|
|
|
|
|
width: 1296rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
// height: 1500rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// background-color: #fff;
|
|
|
|
|
/* 设置背景图和白色背景 */
|
|
|
|
|
// background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.8);
|
|
|
|
|
background: url("/static/index/clearmountain.png") center/cover, rgba(255, 255, 255, 0.7);
|
|
|
|
|
|
|
|
|
|
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
|
|
|
|
background-blend-mode: screen;
|
|
|
|
|
border: 2rpx solid #fff;
|
|
|
|
|
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
|
|
|
|
background-blend-mode: screen;
|
|
|
|
|
|
|
|
|
|
border-radius: 40rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
opacity: 0;
|
|
|
|
|
transition: opacity 0.4s ease;
|
|
|
|
|
|
|
|
|
|
.shu-container-left {
|
|
|
|
|
display: flex;
|
|
|
|
|
margin-top: 70rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
|
|
|
|
|
.shu-container-left-gun {
|
|
|
|
|
margin-top: 5rpx;
|
|
|
|
|
margin-left: 40rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
width: 13rpx;
|
|
|
|
|
height: 35rpx;
|
|
|
|
|
background: linear-gradient(to bottom, #04BCED, #0160CE);
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.shu-container-left-font {
|
|
|
|
|
font-size: 35rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.popup-song-father {
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
.shu-up-img {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: -70rpx;
|
|
|
|
|
left: 305rpx;
|
|
|
|
|
width: 700rpx;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.shu-up-font {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: -50rpx;
|
|
|
|
|
left: 390rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
color: rgb(255, 90, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.arrayindex {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
width: 100%;
|
|
|
|
|
// height: 200rpx;
|
|
|
|
|
margin-left: 30rpx;
|
|
|
|
|
margin-right: 30rpx;
|
|
|
|
|
|
|
|
|
|
.arrayindex-one {
|
|
|
|
|
width: 385rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
background-color: rgb(241, 245, 252);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid rgb(109, 131, 179);
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.arrayindex-one-target {
|
|
|
|
|
width: 385rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
background: linear-gradient(to right, #00c9ff, #0076ff);
|
2025-03-21 17:36:27 +08:00
|
|
|
|
color: #fff;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border-radius: 20rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
border: 1rpx solid rgb(2, 171, 254);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ri-img {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: -4rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
right: -4rpx;
|
|
|
|
|
width: 60rpx;
|
|
|
|
|
height: 60rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.time-father {
|
|
|
|
|
display: flex;
|
|
|
|
|
width: 100%;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
margin-left: 30rpx;
|
|
|
|
|
margin-right: 30rpx;
|
|
|
|
|
|
|
|
|
|
.time-one {
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
background-color: rgb(241, 245, 252);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid rgb(109, 131, 179);
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
box-shadow: 5rpx 5rpx 10rpx rgba(105, 129, 178, 0.4)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.time-one-target {
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
background: linear-gradient(to right, #00c9ff, #0076ff);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
color: #fff;
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid #fff;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
box-shadow: 5rpx 5rpx 10rpx rgba(105, 129, 178, 0.4)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.time-one-hui {
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
background-color: #c2c9d3;
|
|
|
|
|
// color: #fff;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid #fff;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
box-shadow: 5rpx 5rpx 10rpx rgba(105, 129, 178, 0.4)
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.button-father {
|
|
|
|
|
height: 200rpx;
|
|
|
|
|
width: calc(100%-80rpx);
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-left: 40rpx;
|
|
|
|
|
margin-right: 40rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
border-top: 1rpx solid rgb(230, 230, 230);
|
|
|
|
|
|
|
|
|
|
.button-father-right {
|
2025-03-24 17:37:51 +08:00
|
|
|
|
background: linear-gradient(to right, #00c9ff, #0076ff);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
width: 200rpx;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.button-father-wrong {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
background-color: #c2c9d3;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
width: 200rpx;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.month-father {
|
|
|
|
|
display: flex;
|
|
|
|
|
width: calc(100% - 60rpx);
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
margin-left: 30rpx;
|
|
|
|
|
margin-right: 30rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
|
|
|
|
|
.month-one {
|
|
|
|
|
width: 75rpx;
|
|
|
|
|
height: 75rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
background-color: rgb(241, 245, 252);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid rgb(109, 131, 179);
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.month-one-target {
|
|
|
|
|
width: 75rpx;
|
|
|
|
|
height: 75rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
background: linear-gradient(to right, #00c9ff, #0076ff);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
color: #fff;
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid #fff;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.week-father {
|
|
|
|
|
display: flex;
|
|
|
|
|
width: 100%;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
margin-left: 30rpx;
|
|
|
|
|
margin-right: 30rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
|
|
|
|
|
.week-one {
|
|
|
|
|
width: 200rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
background-color: rgb(241, 245, 252);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid rgb(109, 131, 179);
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.week-one-target {
|
|
|
|
|
width: 200rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
margin-top: 20rpx;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
background: linear-gradient(to right, #00c9ff, #0076ff);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
color: #fff;
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
border: 1rpx solid #fff;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 29rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.radio-father {
|
|
|
|
|
display: flex;
|
|
|
|
|
width: 100%;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
margin-left: 75rpx;
|
|
|
|
|
margin-right: 30rpx;
|
|
|
|
|
|
|
|
|
|
.radio-circle {
|
|
|
|
|
margin-top: 2rpx;
|
|
|
|
|
width: 30rpx;
|
|
|
|
|
height: 30rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
border: 2rpx solid black;
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.radio-circle-target {
|
|
|
|
|
position: relative;
|
|
|
|
|
margin-top: 2rpx;
|
|
|
|
|
width: 30rpx;
|
|
|
|
|
height: 30rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
border: 2rpx solid rgb(2, 171, 254);
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.radio-circle-target::after {
|
|
|
|
|
content: "";
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 50%;
|
|
|
|
|
left: 50%;
|
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
|
width: 20rpx;
|
|
|
|
|
height: 20rpx;
|
|
|
|
|
background-color: rgb(2, 171, 254);
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.radio-font {
|
|
|
|
|
margin-left: 15rpx;
|
|
|
|
|
margin-right: 60rpx;
|
|
|
|
|
font-size: 29rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-border {
|
|
|
|
|
margin-top: 4rpx;
|
|
|
|
|
margin-left: 4rpx;
|
|
|
|
|
// border: 1rpx solid black;
|
|
|
|
|
width: calc(100% - 8rpx);
|
|
|
|
|
height: calc(100% - 8rpx);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// justify-content: center;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
.title-time-border-red {
|
2025-03-14 17:30:56 +08:00
|
|
|
|
background-color: #dae8fa;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
width: calc(100%);
|
|
|
|
|
height: calc(100%);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
display: flex;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
// justify-content: center;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
|
|
|
|
/* 调整 box-shadow 使其向下投影 */
|
|
|
|
|
box-shadow: 0px 20rpx 40rpx #dae8fa;
|
|
|
|
|
|
|
|
|
|
background:
|
2025-03-21 17:36:27 +08:00
|
|
|
|
linear-gradient(to right, red, red) top left / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 左上角垂直 */
|
|
|
|
|
linear-gradient(to bottom, red, red) top left / 8rpx 60rpx no-repeat,
|
|
|
|
|
|
|
|
|
|
/* 右上角水平 */
|
|
|
|
|
linear-gradient(to left, red, red) top right / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 右上角垂直 */
|
|
|
|
|
linear-gradient(to bottom, red, red) top right / 8rpx 60rpx no-repeat,
|
|
|
|
|
|
|
|
|
|
/* 左下角水平 */
|
|
|
|
|
linear-gradient(to right, red, red) bottom left / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 左下角垂直 */
|
|
|
|
|
linear-gradient(to top, red, red) bottom left / 8rpx 60rpx no-repeat,
|
|
|
|
|
|
|
|
|
|
/* 右下角水平 */
|
|
|
|
|
linear-gradient(to left, red, red) bottom right / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 右下角垂直 */
|
|
|
|
|
linear-gradient(to top, red, red) bottom right / 8rpx 60rpx no-repeat;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-24 17:37:51 +08:00
|
|
|
|
.title-time-border-big {
|
|
|
|
|
transform: scale(1.5);
|
|
|
|
|
transform-origin: top;
|
|
|
|
|
/* 将页面内容放大1.2倍 */
|
|
|
|
|
border-top: 0rpx solid #fff;
|
|
|
|
|
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
|
|
|
|
|
z-index: 999;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
height: 209rpx;
|
|
|
|
|
width: calc(100%);
|
|
|
|
|
// border-right: 1rpx solid transparent;
|
|
|
|
|
// border-top: 1rpx solid transparent;
|
|
|
|
|
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
// background-color: #f3f6fc;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-26 17:34:08 +08:00
|
|
|
|
.title-time-border-big-top {
|
|
|
|
|
transform: scale(1.5);
|
|
|
|
|
transform-origin: top;
|
|
|
|
|
/* 将页面内容放大1.2倍 */
|
|
|
|
|
border-top: 0rpx solid #fff;
|
|
|
|
|
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
|
|
|
|
|
z-index: 999;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
height: 209rpx;
|
|
|
|
|
width: calc(100%);
|
|
|
|
|
// border-right: 1rpx solid transparent;
|
|
|
|
|
// border-top: 1rpx solid transparent;
|
|
|
|
|
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
// background-color: #f3f6fc;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
.title-time-border-blue {
|
|
|
|
|
background-color: #dae8fa;
|
|
|
|
|
width: calc(100%);
|
|
|
|
|
height: calc(100%);
|
|
|
|
|
display: flex;
|
|
|
|
|
// justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
|
|
/* 调整 box-shadow 使其向下投影 */
|
|
|
|
|
box-shadow: 0px 20rpx 40rpx #dae8fa;
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-21 17:36:27 +08:00
|
|
|
|
background:
|
|
|
|
|
/* 左上角水平 */
|
|
|
|
|
linear-gradient(to right, #0184db, #0184db) top left / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 左上角垂直 */
|
|
|
|
|
linear-gradient(to bottom, #0184db, #0184db) top left / 8rpx 60rpx no-repeat,
|
|
|
|
|
|
|
|
|
|
/* 右上角水平 */
|
|
|
|
|
linear-gradient(to left, #0184db, #0184db) top right / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 右上角垂直 */
|
|
|
|
|
linear-gradient(to bottom, #0184db, #0184db) top right / 8rpx 60rpx no-repeat,
|
|
|
|
|
|
|
|
|
|
/* 左下角水平 */
|
|
|
|
|
linear-gradient(to right, #0184db, #0184db) bottom left / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 左下角垂直 */
|
|
|
|
|
linear-gradient(to top, #0184db, #0184db) bottom left / 8rpx 60rpx no-repeat,
|
|
|
|
|
|
|
|
|
|
/* 右下角水平 */
|
|
|
|
|
linear-gradient(to left, #0184db, #0184db) bottom right / 60rpx 8rpx no-repeat,
|
|
|
|
|
/* 右下角垂直 */
|
|
|
|
|
linear-gradient(to top, #0184db, #0184db) bottom right / 8rpx 60rpx no-repeat;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
2025-03-17 17:34:36 +08:00
|
|
|
|
|
2025-03-14 17:30:56 +08:00
|
|
|
|
.title-time-border-yellow {
|
2025-03-21 17:36:27 +08:00
|
|
|
|
margin: 10rpx;
|
|
|
|
|
border: 2rpx solid #d0d8e0;
|
|
|
|
|
background: linear-gradient(to bottom, #fff1db, #ffe2b2);
|
|
|
|
|
width: calc(100% - 20rpx);
|
|
|
|
|
height: calc(100% - 20rpx);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
box-shadow: 8rpx 8rpx 16rpx rgba(255, 138, 0, 0.7);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-border-yellow-active-transparent {
|
|
|
|
|
margin: 10rpx;
|
|
|
|
|
border: 4rpx dashed rgb(255, 138, 0);
|
|
|
|
|
background: linear-gradient(to bottom, #fff1db, #ffe2b2);
|
|
|
|
|
width: calc(100% - 26rpx);
|
|
|
|
|
height: calc(100% - 26rpx);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
opacity: 0.3;
|
|
|
|
|
// box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
|
|
|
|
|
box-shadow: 8rpx 8rpx 16rpx rgba(255, 138, 0, 0.7);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-border-yellow-active {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
margin: 10rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border: 1rpx solid #dae8fa;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
background: linear-gradient(to bottom, #fff1db, #ffe2b2);
|
2025-03-17 17:34:36 +08:00
|
|
|
|
width: calc(100% - 20rpx);
|
|
|
|
|
height: calc(100% - 20rpx);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
animation: shakesmall 0.8s infinite;
|
|
|
|
|
// box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
|
|
|
|
|
box-shadow: 8rpx 8rpx 16rpx rgba(255, 138, 0, 0.7);
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// z-index: 999;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-border-pouple-active-transparent {
|
|
|
|
|
margin: 10rpx;
|
|
|
|
|
border: 4rpx dashed #7B61FF;
|
|
|
|
|
background: linear-gradient(to bottom, #f1eeff, #e3deff);
|
|
|
|
|
width: calc(100% - 26rpx);
|
|
|
|
|
height: calc(100% - 26rpx);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
opacity: 0.3;
|
|
|
|
|
// box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
|
|
|
|
|
box-shadow: 8rpx 8rpx 16rpx rgba(123, 97, 255, 0.7);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-border-pouple {
|
2025-03-17 17:34:36 +08:00
|
|
|
|
margin: 10rpx;
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border: 1rpx solid #dae8fa;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
background: linear-gradient(to bottom, #f1eeff, #e3deff);
|
|
|
|
|
width: calc(100% - 20rpx);
|
|
|
|
|
height: calc(100% - 20rpx);
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
box-shadow: 8rpx 8rpx 16rpx rgba(123, 97, 255, 0.7);
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// z-index: 999;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title-time-border-pouple-active {
|
|
|
|
|
margin: 10rpx;
|
|
|
|
|
border: 1rpx solid #dae8fa;
|
|
|
|
|
background: linear-gradient(to bottom, #f1eeff, #e3deff);
|
2025-03-17 17:34:36 +08:00
|
|
|
|
width: calc(100% - 20rpx);
|
|
|
|
|
height: calc(100% - 20rpx);
|
2025-03-14 17:30:56 +08:00
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
flex-direction: column;
|
2025-03-21 17:36:27 +08:00
|
|
|
|
animation: shakesmall 1s infinite;
|
|
|
|
|
// box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
|
|
|
|
|
box-shadow: 8rpx 8rpx 16rpx rgba(123, 97, 255, 0.7);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.down-icons {
|
|
|
|
|
margin-top: 10rpx;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
background-color: rgb(255, 216, 126);
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
.icon {
|
|
|
|
|
margin: 0 5rpx;
|
|
|
|
|
font-size: 20rpx;
|
|
|
|
|
padding: 5rpx 10rpx;
|
|
|
|
|
background-color: rgb(255, 138, 0);
|
|
|
|
|
color: #fff;
|
|
|
|
|
border-radius: 5rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes shake {
|
|
|
|
|
0% {
|
|
|
|
|
transform: rotate(-10deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
25% {
|
|
|
|
|
transform: rotate(10deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
50% {
|
|
|
|
|
transform: rotate(-10deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
75% {
|
|
|
|
|
transform: rotate(10deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
100% {
|
|
|
|
|
transform: rotate(-10deg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes shakesmall {
|
|
|
|
|
0% {
|
|
|
|
|
transform: rotate(-2deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
25% {
|
|
|
|
|
transform: rotate(2deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
50% {
|
|
|
|
|
transform: rotate(-2deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
75% {
|
|
|
|
|
transform: rotate(2deg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
100% {
|
|
|
|
|
transform: rotate(-2deg);
|
|
|
|
|
}
|
2025-03-14 17:30:56 +08:00
|
|
|
|
}
|
2025-03-24 17:37:51 +08:00
|
|
|
|
|
|
|
|
|
.boom {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 80rpx;
|
|
|
|
|
left: 0rpx;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
// background-color: #fff;
|
|
|
|
|
width: 42rpx;
|
|
|
|
|
height: 840rpx;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
display: flex;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
flex-direction: column;
|
|
|
|
|
// justify-content: center;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
align-items: center;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
overflow: hidden;
|
2025-03-24 17:37:51 +08:00
|
|
|
|
z-index: 10;
|
2025-03-26 17:34:08 +08:00
|
|
|
|
|
|
|
|
|
.boom-son {
|
|
|
|
|
height: 210rpx;
|
|
|
|
|
width: 100%;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
letter-spacing: 5rpx;
|
|
|
|
|
// box-shadow: 5rpx 5rpx 10rpx rgba(0, 0, 0, 0.1);s
|
|
|
|
|
writing-mode: vertical-rl;
|
|
|
|
|
/* 竖排文字,从右往左 */
|
|
|
|
|
text-align: center;
|
|
|
|
|
z-index: 10;
|
|
|
|
|
/* 确保文字在容器内居中 */
|
|
|
|
|
background: linear-gradient(to bottom, #ffe2b2, #e3deff);
|
|
|
|
|
// z-index: -1;
|
|
|
|
|
border-bottom-right-radius: 40rpx;
|
|
|
|
|
border-top-right-radius: 40rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.boom-son-target {
|
|
|
|
|
height: 210rpx;
|
|
|
|
|
width: 100%;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
letter-spacing: 5rpx;
|
|
|
|
|
// box-shadow: 5rpx 5rpx 10rpx rgba(0, 0, 0, 0.1);s
|
|
|
|
|
writing-mode: vertical-rl;
|
|
|
|
|
/* 竖排文字,从右往左 */
|
|
|
|
|
text-align: center;
|
|
|
|
|
z-index: 10;
|
|
|
|
|
/* 确保文字在容器内居中 */
|
|
|
|
|
background: linear-gradient(to bottom, #ff8a00, #eceaff);
|
|
|
|
|
// color: #fff;
|
|
|
|
|
// z-index: -1;
|
|
|
|
|
border-bottom-right-radius: 40rpx;
|
|
|
|
|
border-top-right-radius: 40rpx;
|
|
|
|
|
}
|
2025-03-24 17:37:51 +08:00
|
|
|
|
}
|
2025-03-05 17:29:32 +08:00
|
|
|
|
</style>
|