hldy_app_mini/pages/NursingNew/component/index.vue

2387 lines
58 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="index-content-other" :style="transition?{opacity: `1`}:{opacity: `0`}">
<view class="right-container-title-nav">
<view class="title-card" @click="nusing">
<view class="card-top">
<view class="card-top-left">
{{hldyobj?.hllFinishedTotal}}
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
<view class="card-spec">
<view class="line">
</view>
<view class="line-gray">
{{hldyobj?.hllTotal}}
</view>
</view>
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/help.png" />
<view class="bottom-font">
护理
</view>
</view>
</view>
<view class="title-card" @click="nusing">
<view class="card-top">
<view class="card-top-left">
0
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
<view class="card-spec">
<view class="line">
</view>
<view class="line-gray">
0
</view>
</view>
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/doctor.png" />
<view class="bottom-font">
医疗
</view>
</view>
</view>
<view class="title-card" @click="nusing">
<view class="card-top" >
<view class="card-top-left">
{{hldyobj.hqlFinishedTotal}}
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
<view class="card-spec">
<view class="line">
</view>
<view class="line-gray">
{{hldyobj.hqlTotal}}
</view>
</view>
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/work.png" />
<view class="bottom-font">
后勤
</view>
</view>
</view>
<view class="title-card-right" @click="jszlshow = true">
<view class="card-top">
<view class="card-top-left">
</view>
<view class="card-top-right">
<image class="right-img" src="/static/index/card/arrow.png" />
</view>
</view>
<view class="card-bottom">
<image class="bottom-img" src="/static/index/card/alarm.png" />
<view class="bottom-font">
即时
</view>
</view>
<view class="bianj" v-if="jszlshow">
<image src="/static/index/card/bj.png" mode="aspectFill"></image>
</view>
<view class="jszl guodu" :class="jszlshow?'':'jsh0'" @click.stop>
<view class="tittop">
<view></view>
即时服务指令
</view>
<view class="spiw">
<view v-for="(v,i) in ['护理','医疗','后勤']" :key="i" :class="i==fwzlindex?'act':''" @click="shtab(i)">{{v}}</view>
</view>
<scroll-view class="scrol" scroll-y="true">
<view v-for="(v,i) in fwzlarr" :key='i' :class="i==fwzldex?'act':''" class="cdk" @click="zldex(i)">
<image :src="fwzldex!=i?v.netImmediateFile:v.netPreviewFileSmall" mode="aspectFill"></image>
<text style="white-space: nowrap;width: 100%;text-overflow: ellipsis;overflow: hidden;">{{v.directiveName}}</text>
</view>
<view style="width: 13vw;height: 13vw;margin: 7vw 0 0 23.5vw;display: block;background: none;" v-if="fwzlarr.length==0">
<image src="/static/index/card/zw.png" mode="aspectFill" style="width:13vw;height: 13vw"></image>
<view style="width: 100%;text-align: center; font-weight: 400; font-size: 1.2vw;color: #555555;margin-top: -3vw;text-align: center;white-space: nowrap;">
暂无服务指令
</view>
</view>
</scroll-view>
<view class="submit" >
<view @click.stop="jszlshow = false">取消</view>
<view @click="subitshowing" v-if="fwzldex>0">确定</view>
</view>
</view>
</view>
</view>
<view class="mengban" v-if="jszlshow" @click="jszlshow = false" ></view>
<view class="photo-father">
<view class="juzhong" style="margin-left: -30rpx;" :style="indexmessage?.startTime?{}:{filter: `grayscale(60%)`}">
<donghua :width="`1300rpx`" :height="`900rpx`" :links="blueArray" :playing="photoplay" :loop="true"
:interval="120" />
</view>
<view class="weight-time">
<view class="" v-if="indexmessage?.startTime">
{{ indexmessage?.startTime.slice(11, 16) }}
-
{{ indexmessage?.endTime.slice(11, 16) }}
</view>
<view style="height: 5vw;" v-show="!indexmessage?.startTime">
</view>
<view class="pao-father" v-show="indexmessage?.startTime">
<image class="pao-img" :src="`/static/index/newindex/states/pao.png`" />
<view style="z-index: 1;" v-if="topbuttontarget==0">
{{indexmessage?.izStart=='N'?'待执行':'执行中'}}
</view>
</view>
</view>
<tanchuang :show="open==3" font="是否结束服务指令?" @back="open = 0" @right="ends()"> </tanchuang>
<image class="big-img" v-if="topbuttontarget==0" :style="!indexmessage?.previewFile?'width: 450rpx':''"
:src="indexmessage?.previewFile? 'https://www.focusnu.com/media/upFiles/' + indexmessage?.previewFile: `/static/index/newindex/wendu/2.png`" mode="aspectFill"/>
<view style="display: flex;align-items: center; ">
<view class="server-name" v-if="indexmessage?.startTime">
{{ indexmessage?.directiveName }}
</view>
<view style="width: 6.5vw;height: 2vw;margin-left: 1vw;position: relative;" v-if="indexmessage?.categoryName">
<image src="/static/index/newindex/wendu/bgc.png" mode="aspectFill" style="width: 100%;height: 100%;position: relative;z-index: 0;margin-top: 0.9vw;"></image>
<view class="bgc-font" v-if="topbuttontarget==0" style="top: 0;left: 0;padding-left:0.65vw;width: 100%;height: 100%;z-index: 2;position: absolute;line-height:3.7vw;font-size: 1.1vw;">
{{indexmessage.categoryName}}
</view>
</view>
</view>
<view style="display: flex;margin-top: 40rpx;" v-if="indexmessage?.startTime">
<view style="width: 240rpx;height: 90rpx;margin-right: 40rpx;">
<view :class="indexmessage?.izStart=='N'?'start-button':'end-button'" v-show="indexmessage?.startTime" @click="start(indexmessage)">
开始服务
</view>
</view>
<view style="width: 240rpx;height: 90rpx;">
<view :class="(indexmessage?.izStart=='Y'&& indexmessage?.izFinish=='N')?'start-button':'end-button'" @click="end(indexmessage)">
结束服务
</view>
</view>
</view>
<view class="mengban" v-if="zdxzdex>0" @click="zdxzdex=0"></view>
<view class="photowall" v-show="zdxzdex>0" :style="zdxzdex?{opacity:1}:{opacity:0}">
<view class="photowall-title">
<view class="photowall-name">
{{ zdxzdex==1?`转单执行`:`协助执行` }}
</view>
</view>
<scroll-view scroll-y="true" class="photowall-other" scroll-with-animation enable-flex v-if="zdxzdex>0">
<view class="photowall-other" >
<view class="bottom-title" v-for="(v,i) in zdxzarr" :key='i' @click="zdwu(v,i)"
style="border: 1px solid #f8f8f8;width: 16vw;margin: 0 0.8vw;;height: 17vw;border-radius: 1.1vw;background: #f8f8f8;display: flex;flex-direction: column;align-items: center;"
:style="v.flag?'border: 1px solid #0385FA;background: #fff !important;':''">
<image style="width: 9vw;height: 9vw;border-radius: 50%;margin: 1vw auto;"
:src="v.headPath?serverUrl+v.headPath:'/static/shouye/xd.png'" />
<view class="name-weight">
{{v.name }}
</view>
<view class="message-view" v-if="uni.getStorageSync('NUall').elderInfo?.name">
{{v.sex}}
<view class="message-shu"></view>
<view style="font-weight: 600;">
{{ v.height}}cm
</view>
<view class="message-shu"></view>
{{ v.weight}}Kg
</view>
</view>
</view>
</scroll-view>
<view style="position: absolute;right: 2vw;bottom: 0.8vw;height: 4vw;" >
<view
v-if="flag"
style="width: 8.2vw;
height: 3.3vw;
background: #EDEDEF;
border-radius: 1.6vw;
font-weight: 400;
font-size: 1.6vw;
color: #888888;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #EDEDEF;
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
border: 1px solid rgba(3,133,250,0.34);
color: #0385FA;" @click="zhixingsub" >确定</view>
<view
v-if="!flag"
style="width: 8.2vw;
height: 3.3vw;
background: #EDEDEF;
border-radius: 1.6vw;
font-weight: 400;
font-size: 1.6vw;
color: #888888;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #EDEDEF;
border: 1px solid rgba(3,133,250,0.34);
color: #999;" >确定</view>
</view>
<tanchuang :show="zxzd>0" :font="zdcont" @back="zxzd = 0" @right="tijiaozx()"> </tanchuang>
</view>
</view>
<view class="left-menu" v-show="indexmessage?.startTime">
<view style="margin: 30rpx 0;" @click="errmsgclk(0,1)">
<view class="left-ball" :style="indexmessage?.serviceContent!=''?'background-color: #fff;':'background-color:RGBA(228, 229, 231, 1);'">
<image class="left-menu-img" :src="'/static/index/newindex/leftmenu/left'+0+'.png'" />
</view>
</view>
<view style="margin: 30rpx 0;" @click="errmsgclk(1,1)">
<view class="left-ball" :style="indexmessage?.mp3File!=''?'background-color: #fff;':'background-color:RGBA(228, 229, 231, 1);'">
<image class="left-menu-img" :src="'/static/index/newindex/leftmenu/left'+1+'.png'" />
</view>
</view>
<view style="margin: 30rpx 0;" @click="errmsgclk(2,1)">
<view class="left-ball" :style="indexmessage?.mp4File!=''?'background-color: #fff;':'background-color:RGBA(228, 229, 231, 1);'">
<image class="left-menu-img" :src="'/static/index/newindex/leftmenu/left'+2+'.png'" />
</view>
</view>
<view v-for="(item,index) in [3,4]" :key="index" style="margin: 30rpx 0;" @click="errmsgclk(item,2)">
<view class="left-ball" :style="indexmessage?.izStart=='Y'?'background-color: #fff;':'background-color:RGBA(228, 229, 231, 1);'">
<image class="left-menu-img" :src="'/static/index/newindex/leftmenu/left'+item+'.png'" />
</view>
</view>
</view>
<view class="right-menu" v-show="indexmessage?.startTime" v-if="indexmessage?.optType==1">
<view class="zhezhao-top" @click="scrollTop -= 115"></view>
<view class="zhezhao-bottom" @click="scrollTop += 115"></view>
<image class="top-img" :src="`/static/index/newindex/rightmenu/top.png`"
@click="scrollTop>0? scrollTop -= 115:scrollTop=0" />
<scroll-view scroll-y="true" class="right-scroll" :scroll-top="scrollTop" @scroll="onScroll">
<view style="height: 20rpx;"> </view>
<view style="margin: 20rpx 0;width: 110rpx;margin-left: 20rpx;" @click="zhixing(1)">
<view class="white-circle" :style="indexmessage?.izStart=='Y'?'background-color:RGBA(228, 229, 231, 1)' : ''">
<image class="right-menu-img" :src="'/static/index/newindex/rightmenu/1.png'" />
<view class="right-menu-name">
转单执行
</view>
</view>
</view>
<view style="margin: 20rpx 0;width: 110rpx;margin-left: 20rpx;" @click="zhixing(2)">
<view class="white-circle">
<image class="right-menu-img" :src="'/static/index/newindex/rightmenu/2.png'" />
<view class="right-menu-name">
协助执行
</view>
</view>
</view>
<view style="height: 30rpx;">
</view>
</scroll-view>
<image class="top-img" :src="`/static/index/newindex/rightmenu/bottom.png`"
@click="scrollTop > (55* rightMenu.length) ? scrollTop = (55* rightMenu.length) : scrollTop += 115 " />
</view>
</view>
<errorshow :show="openerror" :font="errmsg" @close="openerror=false" :icons="false" style="left: 44%;"/>
<errorshow :show="error" :font="msg" @close="error=false" style="left: 44%;"/>
<view class="index-content-right" :style="transition?{opacity: `1`}:{opacity: `0`}">
<view class="right-time">
<view class="time-top">
<view class="time-big">
{{ currentTime }}
</view>
<view class="">
<view class="time-week">
{{ weekDay }}
</view>
<view class="">
{{ fullDate }}
</view>
</view>
</view>
<view class="right-container-tem">
<view class="">
<image class="right-container-tem-img" src="/static/index/newindex/wendu/0.png" />
<text
class="right-container-tem-text">{{ (uni.getStorageSync('NUall').humidDeviceList && uni.getStorageSync('NUall').humidDeviceList[0])? uni.getStorageSync('NUall').humidDeviceList[0].temperature: '-' }}°C</text>
</view>
<view class="">
<image class="right-container-tem-img" src="/static/index/newindex/wendu/1.png" />
<text
class="right-container-tem-text">{{ (uni.getStorageSync('NUall').humidDeviceList && uni.getStorageSync('NUall').humidDeviceList[0])? uni.getStorageSync('NUall').humidDeviceList[0].humidity: '-' }}%</text>
</view>
</view>
</view>
<view class="right-top">
<view class="top-title">
护理单元
</view>
<scroll-view class="top-list" scroll-y>
<view class="list-view" :style="menutarget===index?{borderColor:`#8DD6FF`,backgroundColor:`#F7F7F9`}:{}"
v-for="(item,index) in filteredMenu(0)" :key="index" @click="clickmenu(index)">
<view class="list-img">
<image :src="`/static/index/newindex/leftmenu/NU${item.elderInfo?.name?`blue`:`white`}.png`" />
<view v-if="item.readList!=null&&item.readList.length>0"></view>
</view>
<view class="">
<view class="first-line">
<view style="font-size: 1.2vw;">
{{ item.nuName }}
</view>
<view class="first-line-second">
{{ item.elderInfo?.name?`入住`:`空闲` }}
</view>
</view>
<view class="second-line">
NUID{{ item.nuId }}
</view>
</view>
</view>
</scroll-view>
</view>
<view class="mengban" v-if="zzbqshow" @click="zzbqshow = false;tagtarget=-1"></view>
<view class="right-bottom">
<view class="bottom-title">
<image class="bottom-carmera" src="/static/index/newindex/leftmenu/carmera.png" @click="gotolook" />
<view class="blue-button" @click="geteverything()">
长者标签
<view class="jb" v-show="zzbqshow">
<image src="/static/index/card/bj.png" mode="aspectFill"></image>
</view>
<view class="zzbq guodu" @click.stop :class="zzbqshow?'':'zzh0'">
<view class="carfd" v-if="zzbqshow">
<view class="tittop">
<view></view>
体重标签
</view>
<view class="tg" style="border-right: 1px solid rgba(238, 238, 238, 1);">
<view v-for="(v,i) in emotionTagList" :key='i' @click="clicktag(v,i)">
<image :src="v.netPic" mode="aspectFill"></image>
<text>{{v.tagName}}</text>
</view>
<image src="/static/index/card/zanw.png" mode="aspectFill"
v-if="emotionTagList.length==0"
style="width: 5.4vw;height: 5.4vw;margin-top: -0.7vw;margin-left: -1vw;"></image>
</view>
</view>
<view class="carfd" v-if="zzbqshow">
<view class="tittop">
<view style="margin-left: 1vw;"></view>
情绪标签
</view>
<view class="tg">
<view v-for="(v,i) in bodyTagList" :key='i' @click="clicktag(v,i+2)">
<image :src="v.netPic" mode="aspectFill"></image>
<text>{{v.tagName}}</text>
</view>
<image src="/static/index/card/zanw.png" mode="aspectFill" v-if="bodyTagList.length==0"
style="width: 5.4vw;height: 5.4vw;margin-top: -0.7vw;margin-left: 1.2vw;"></image>
</view>
</view>
</view>
<view class="zzbqsmall guodu" @click.stop :class="zzbqshow&&tagtarget!=-1?'':'zzh0'">
<view class="jbsmall" v-show="tagtarget!=-1" :style="{left:`${leftnumber}vw`}">
<image src="/static/index/card/bj.png" mode="aspectFill"></image>
</view>
{{ tagtarget==-1?'':detail }}
</view>
</view>
</view>
<image class="big-older"
:src="`/static/index/newindex/leftmenu/${uni.getStorageSync('NUall').elderInfo?.name?`older`:`nopeople`}.png`" />
<view class="name-weight">
{{ uni.getStorageSync('NUall').elderInfo?.name ? uni.getStorageSync('NUall').elderInfo?.name:`暂无长者` }}
</view>
<view class="message-view" v-if="uni.getStorageSync('NUall').elderInfo?.name">
{{ uni.getStorageSync('NUall').elderInfo?.sex }}
<view class="message-shu"></view>
<view style="font-weight: 600;">
{{ calcAge(uni.getStorageSync('NUall').elderInfo?.dateOfBirth) }}
</view>
<view class="message-shu"></view>
<image class="message-img" :src="`/static/index/newindex/leftmenu/time.png`" />
{{ uni.getStorageSync('NUall').elderInfo?.checkinTime.replace(/-/g, '.') }}
</view>
<view class="message-bottom" v-if="uni.getStorageSync('NUall').elderInfo?.name">
<view class="bottom-tags">
{{ uni.getStorageSync('NUall').elderInfo?.yblxName }}
</view>
<view class="bottom-tags" v-show="uni.getStorageSync('NUall').elderInfo?.sndjName" >
{{ uni.getStorageSync('NUall').elderInfo?.sndjName }}
</view>
<view class="bottom-tags" >
{{ uni.getStorageSync('NUall').elderInfo?.jfztName }}
</view>
</view>
</view>
</view>
<view class="fixed-card" :style="openleft?{}:{right:`-33vw`}" v-show="indexmessage?.startTime">
<view class="fixed-card-left">
<image class="card-left-img" v-if="topbuttontarget==0" :style="!indexmessage?.previewFile?'width: 450rpx':''"
:src="indexmessage?.previewFile? 'https://www.focusnu.com/media/upFiles/' + indexmessage?.previewFile: `/static/index/newindex/wendu/2.png`" mode="aspectFill"/>
<view class="">
{{ indexmessage?.directiveName }}
</view>
</view>
<view>
<view class="big-time" v-if="indexmessage?.startTime">
{{ indexmessage?.startTime.slice(11, 16) }}
-
{{ indexmessage?.endTime.slice(11, 16) }}
</view>
<view class="icon-people">
<image class="people-img" src="/static/index/newindex/leftmenu/iconleft.png" />
<text v-if="indexmessage.optType == 1" style="white-space: nowrap;">单人执行</text>
<text v-if="indexmessage.optType == 2" style="white-space: nowrap;">协助执行</text>
<image style="margin-left: 1vw;" class="people-img"
src="/static/index/newindex/leftmenu/iconright.png" />
<text v-if="indexmessage.optType == 1">{{indexmessage.employeeName}}</text>
<text v-if="indexmessage.optType == 2">{{indexmessage.optNames}}</text>
</view>
<!-- <view style="color: #555555;">
业务单号P10120251010001
</view> -->
<view class="icon-button">
<view :class="indexmessage?.izStart=='N'?'button-right':'button-left'" @click="start(indexmessage)">
开始服务
</view>
<view :class="(indexmessage?.izStart=='Y'&& indexmessage?.izFinish=='N')?'button-right':'button-left'" @click="end(indexmessage)">
结束服务
</view>
</view>
</view>
<view class="left-open" @click="openleft = !openleft">
<image :style="openleft?{}:{transform: `rotate(180deg)`}" class="open-img"
src="/static/index/newindex/leftmenu/openleft.png" />
</view>
<view class="mengban" v-if="topbuttontarget>0" @click="topbuttontarget=0"></view>
<view class="photowall" v-show="topbuttontarget>0" :style="donghuaopo?{opacity:1}:{opacity:0}" >
<view class="photowall-title">
<view class="photowall-name">
{{ topbuttontarget==1?`照片`:`录像` }}
</view>
</view>
<scroll-view scroll-y="true" class="photowall-other" scroll-with-animation enable-flex v-if="topbuttontarget>0">
<view class="photowall-other" >
<view class="photowall-other-one" v-for="(item,index) in ilanarr" :key="index"
@click="previewImage(item,index,ilanarr)">
<view v-if="topbuttontarget==1" style="width: 100%;height: 70%;border-radius: 30rpx;position: relative;">
<image style="width: 100%;height: 100%;border-radius: 30rpx;"
:src="item?serverUrl + item:'/static/ceshiyaoshan.png'" mode="aspectFill"
:lazy-load="true"/>
<view @click.stop="open=1;del(item,index)"
style="width: 1.6vw;
height: 1.6vw;
z-index: 20;
position: absolute;
right: -1vw;
top: -0.7vw;
background: red;
display: flex;
justify-content: center;
border-radius: 50%;
align-items: center;"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
<image src="/static/index/warehouse/procurement/x.png" mode="aspectFill"
style="width: 1.4vw;
height: 1.4vw;"></image>
</view>
</view>
<view v-if="topbuttontarget==2" style="width: 100%;height: 70%;border-radius: 30rpx ;position: relative;" >
<video style="width: 100%;height: 100%;border-radius: 30rpx;" :id="'myVideo'+index"
:src="servervideoUrl+item" direction="180"
mode="aspectFill" ></video>
<view @click.stop="ilanarr.splice(index,1)"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')"
style="width: 1.6vw;
height: 1.6vw;
z-index: 20;
position: absolute;
right: -1vw;
top: -0.7vw;
background: red;
display: flex;
justify-content: center;
border-radius: 50%;
align-items: center;">
<image src="/static/index/warehouse/procurement/x.png" mode="aspectFill"
style="width: 1.4vw;
height: 1.4vw;"></image>
</view>
</view>
<!-- <view style="margin-top: 20rpx;">
<text style="color: #888888;">
上传时间:
</text>
<text style="margin-left: 15rpx;">
{{item.createTime.replace(/-/g, '.')}}
</text>
</view>
<view style="margin-top: 10rpx;">
<text style="color: #888888;letter-spacing: 8.9rpx;">
上传人:
</text>
<text>
{{item.createBy}}
</text>
</view> -->
</view>
<view class="photowall-other-one" v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
<view style="width: 100%;height: 71%;display: flex;flex-direction: column;
justify-content: center;align-items: center;position: absolute;top:0vw;left: 0;
background-color:#fafdff ;border: 1rpx solid #78B1EB;border-radius: 30rpx;" @click="uplod(1)">
<image style="width: 70rpx;height: 70rpx;margin-bottom: 5rpx;"
src="/static/index/warehouse/procurement/picking/addphoto.png" />
<view style="color: #78B1EB;">
点击上传{{topbuttontarget==1?'图片':'录像'}}
</view>
</view>
</view>
<!-- <view class="noarray" v-if="!ilanarr.length">
<image class="noarray-img" src="/static/index/warehouse/procurement/picking/noarray.png"
mode="aspectFill" />
<view class="noarray-font">
暂无照片
</view>
</view> -->
</view>
</scroll-view>
<view style="position: absolute;right: 2vw;bottom: 0.8vw;height: 4vw;" v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
<view
style="width: 8.2vw;
height: 3.3vw;
background: #EDEDEF;
border-radius: 1.6vw;
font-weight: 400;
font-size: 1.6vw;
color: #888888;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #EDEDEF;
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
border: 1px solid rgba(3,133,250,0.34);
color: #0385FA;" @click="submit" >确定</view>
</view>
</view>
<tanchuang :show="open==1" font="是否删除此图片" @back="open = 0" @right="del1()"> </tanchuang>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch ,reactive} from 'vue';
import { queryPadPageList } from '@/pages/watch/api/lunpan.js'
import { queryWorkOrderList,queryCountByType,queryAll } from './api.js'
// import {startOrder,endOrder} from './doctorask/api/api.js'
import {queryOrderList,queryOrderInfoList,startOrder,endOrder,editSubPicPath,editSubMp4,queryEmpList,transferOrder,assistOrder,generateInstant} from '../component/doctorask/api/api.js'
import { getNclist } from "./nurse/api.js";
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
const servervideoUrl = ref(uni.getStorageSync('serverUrl') + '/sys/commonVideo/staticVideo/')
const form = reactive({
pageNo: 1,
pageSize: 10,
employeeId:uni.getStorageSync('userInfo').employessId,
nuId:uni.getStorageSync('nuId')
})
const zdxzdex = ref(0)
const zdxzarr = ref(0)
const zhixing = (e)=>{
if(indexmessage.value?.izStart=='Y' && e ==1){
uni.showToast({
title:'服务中不能转单!',
icon:'none'
})
return
}
queryEmpList({id:uni.getStorageSync('userInfo').id}).then(res=>{
zdxzarr.value = res.result;
console.log(res)
zdxzarr.value.forEach(item=>{
item.flag = false
})
zdxzdex.value = e;
})
}
const flag = ref(false)
const zdwu = (e,k)=>{
if(zdxzdex.value==1){
e.flag = !e.flag;
zdxzarr.value.forEach((item,i)=>{
if(i!=k){
item.flag = false
}
})
flag.value = e.flag
}
if(zdxzdex.value==2){
e.flag = !e.flag;
let arr = [];
zdxzarr.value.forEach((item,i)=>{
if(item.flag){
arr.push(1)
}
})
if(arr.length==0){
flag.value = false;
}else{
flag.value = true;
}
}
}
const zhixingsub = ()=>{
zxzd.value = zdxzdex.value
if(zdxzdex.value==1){
zdcont.value = "确认转单执行?"
}
if(zdxzdex.value==2){
zdcont.value = "确认协助执行?"
}
}
const zxzd = ref(0);
const zdcont = ref('');
const tijiaozx = ()=>{
if(zxzd.value == 1){
let s = {}
zdxzarr.value.forEach((item,i)=>{
if(item.flag){
s = item;
}
})
let obj = {
mainId:indexmessage.value.mainId,
employeeId:s.id,
employeeName:s.name,
beforeBy:indexmessage.value.employeeId,
beforeByName:indexmessage.value.employeeName
}
let nuId = uni.getStorageSync('nuId');
transferOrder(obj).then(res=>{
if(res.success){
firstgetqueryCgdList(nuId);
flag.value = false;
zxzd.value = 0;
zdxzdex.value = 0;
}
})
}
if(zxzd.value == 2){
let userinfo = uni.getStorageSync('userInfo')
let id = userinfo.id+',';
let name = userinfo.realname+',';
zdxzarr.value.forEach((item,i)=>{
if(item.flag){
id+=item.id+','
name+=item.name+','
}
})
id = id.slice(0, -1);
name = name.slice(0, -1);
let obj = {
mainId:indexmessage.value.mainId,
optIds:id,
optNames:name,
beforeBy:indexmessage.value.employeeId,
beforeByName:indexmessage.value.employeeName
}
console.log(obj)
assistOrder(obj).then(res=>{
if(res.success){
clickLeftMenu(0,{id:indexmessage.value.mainId})
flag.value = false;
zxzd.value = 0;
zdxzdex.value = 0;
}
})
}
}
const plsbuy = ref([])
const firstgetqueryCgdList = (nuId) => {
form.nuId = nuId;
console.log(form)
queryOrderList(form).then(res => {
if(res.result.records.length>0){
clickLeftMenu(0,res.result.records[0])
}else{
indexmessage.value = {};
}
})
}
const clickLeftMenu = (index : any, item : object) => {
queryOrderInfoList({ mainId: item.id }).then(res => {
console.log(res)
if(res.result.length>0){
indexmessage.value = res.result[0]
}else{
indexmessage.value = {};
}
})
}
const open = ref(0)
const donghuaopo = ref(false);
const topbuttontarget = ref(0);
const ilanarr = ref([]);
const listobj = ref({});
const ysptp = (v,i,r) =>{
// v.manuallyPicPath
if(r == 1&&v.manuallyPicPath){
ilanarr.value = v.manuallyPicPath.split(",");
ilanarr.value = ilanarr.value.filter(item => item !== '');
}else if(r == 2&&v.manuallyMp4Path){
ilanarr.value = v.manuallyMp4Path.split(",");
ilanarr.value = ilanarr.value.filter(item => item !== '');
}else if(r == 3&&v.tplinkPath){
ilanarr.value = v.tplinkPath.split(",");
ilanarr.value = ilanarr.value.filter(item => item !== '');
}
else{
ilanarr.value = [];
}
listobj.value = v;
topbuttontarget.value = r;
donghuaopo.value = true;
}
const uplod = (v) => {
if(topbuttontarget.value==1){
uni.chooseImage({
count: 1, //默认9
sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera'], //从相册选择
success: (e) => {
let ar = JSON.stringify(e.tempFilePaths)
uni.compressImage({
src: JSON.parse(ar)[0],
quality: 60,
success: res => {
sxdupld(res.tempFilePath)
// v.picPatharr.push(res.tempFilePath);
// console.log(v.picPatharr)
}
})
}
});
}else{
uni.chooseVideo({
sourceType: ['camera' ],
success: (e)=> {
uni.showLoading({
title:'正在上传...'
})
uni.compressVideo({
src: e.tempFilePath,
quality: 'medium',
success: res => {
sxdupld(res.tempFilePath)
// v.picPatharr.push(res.tempFilePath);
// console.log(v.picPatharr)
}
})
// sxdupld(res.tempFilePath )
}
});
}
}
const sxdupld = (e) => {
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
uni.uploadFile({
url: uni.getStorageSync('serverUrl') + '/sys/common/upload',
filePath: e,
name: 'file',
fileType:topbuttontarget.value==2?'video':'image',
formData: {
biz: year + '/' + month + (topbuttontarget.value==1?'/fwxm/manuallyPicPath':'/fwxm/manuallyMp4Path')
},
header: {
'X-Access-Token': uni.getStorageSync('token')
},
success: res => {
const data = JSON.parse(res.data);
ilanarr.value.push(data.message)
uni.hideLoading()
},
fail: () => {
uni.hideLoading()
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
}
const submit = ()=>{
let sub = "";
ilanarr.value.forEach(item=>{
sub+=item+','
})
if(topbuttontarget.value == 1){
editSubPicPath({id:listobj.value.id,manuallyPicPath:sub}).then(res=>{
if(res.success){
topbuttontarget.value = 0;
donghuaopo.value = false;
clickLeftMenu(0,{id:indexmessage.value.mainId})
}
})
}else{
editSubMp4({id:listobj.value.id,manuallyMp4Path:sub}).then(res=>{
if(res.success){
topbuttontarget.value = 0;
donghuaopo.value = false;
clickLeftMenu(0,{id:indexmessage.value.mainId})
}
})
}
}
const previewImage = (v, i, arr) => {
if(topbuttontarget.value == 1){
let u = []
arr.forEach(e => {
u.push(serverUrl.value + e)
console.log(serverUrl.value + e)
})
uni.previewImage({
current: i,
urls: u,
showmenu: false,
longPressActions: {
itemList: [],
}
})
}
}
const videoContext = ref(null)
const play = (e,i)=>{
videoContext.value = uni.createVideoContext('myVideo'+i);
videoContext.value.play()
}
const pici = ref(0);
const del = (v,i) =>{
pici.value = i;
}
const del1=()=>{
ilanarr.value.splice(pici.value,1);
open.value = 0
}
//
const openerror = ref(false);
const errmsg = ref('')
const props = defineProps({
isShow: {
type: Boolean,
required: true,
},
});
const errmsgclk = (e,k)=>{
if(k==1){
if(indexmessage.value?.izStart=='Y'){
switch (e){
case 0:
if(indexmessage.value?.serviceContent==''){return}
errmsg.value = indexmessage.value?.serviceContent
break;
case 1:
if(indexmessage.value?.mp3File==''){return}
errmsg.value = indexmessage.value?.mp3File
break;
case 2:
if(indexmessage.value?.mp4File==''){return}
errmsg.value = indexmessage.value?.mp4File
break;
default:
break;
}
openerror.value = true;
}
}else{
if(indexmessage.value?.izStart=='Y'){
switch (e){
case 3:
ysptp(indexmessage.value,0,1)
break;
case 4:
ysptp(indexmessage.value,0,2)
break;
default:
break;
}
}
}
}
const leftMenuArray = ref([]);
const openleft = ref(false)
const menutarget = ref(0)
const emit = defineEmits(['swip',"gospecial"])
const clickmenu = (index : number) => {
menutarget.value = index
let data = filteredMenu(0)[index]
uni.setStorageSync('nuId', data.nuId);
uni.setStorageSync('nuName', data.nuName);
uni.setStorageSync('elderId', data.elderInfo ? data.elderInfo?.id : null);
uni.setStorageSync('NUall', data);
firstgetqueryCgdList(data.nuId);
hlylhq(data.nuId,data.elderInfo?.id)
zlfunc(data.nuId,data.elderInfo?.id)
emit('swip')
}
const hldyobj = ref({})
const hlylhq = (nuId,elderId)=>{
let data = {
nuId:nuId,
elderId:elderId
}
queryCountByType(data).then(res=>{
// console.log(res)
hldyobj.value = res.result
})
}
const fwzlindex = ref(0);
const fwzldex = ref(-1);
const fwzlarr = ref(0);
const zlarr = ref({});
const zlfunc = (nuId,elderId)=>{
let data = {
nuId:nuId,
elderId:elderId
}
queryAll(data).then(res=>{
zlarr.value = res.result;
shtab(fwzlindex.value)
})
}
const shtab = (e)=>{
fwzlindex.value = e;
if(e==0){
fwzlarr.value = zlarr.value.care
}
if(e==1){
fwzlarr.value = [];
}
if(e==2){
fwzlarr.value = zlarr.value.logistics
}
console.log(fwzlarr.value)
}
const zldex = (e) =>{
if(e>-1&&e==fwzldex.value){
fwzldex.value = -1
}else{
fwzldex.value = e
}
}
const error = ref(false)
const msg = ref('')
const subitshowing = () =>{
if(fwzldex.value<0){
return
}
let code = fwzlindex.value==0?1:fwzlindex.value==1?2:4
let obj = {
id:fwzlarr.value[fwzldex.value].id,
triggerMode:1,
orderType:code
}
console.log(obj)
generateInstant(obj).then(res=>{
if(res.success){
jszlshow.value = false
}else{
error.value = true;
msg.value = res.message
}
})
}
function calcAge(dateOfBirth : string) {
const birthYear = parseInt(dateOfBirth?.slice(0, 4), 10);
const currentYear = new Date().getFullYear();
return currentYear - birthYear;
}
const typeNow = ref(-1);
const photoplay = ref(false)
const downArray = ref()
const scrollTop = ref(0);
function onScroll(e) {
// e.detail.scrollTop 就是当前滚动距离
scrollTop.value = e.detail.scrollTop
}
const start = (v) =>{
if(v.izStart!='N'){return}
console.log(v)
startOrder({id:v.id}).then(res=>{
console.log(res)
if(res.success){
v.izStart = "Y";
}else{
}
})
}
const end = (v)=>{
if(indexmessage.value.izStart=='Y'&& indexmessage.value.izFinish=='N'){
open.value=3;
}
}
const ends = ()=>{
endOrder({id:indexmessage.value.id}).then(res=>{
if(res.success){
open.value=0;
firstgetqueryCgdList(uni.getStorageSync('nuId'))
}else{
}
})
}
// 通用的生成函数
function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
return Array.from({ length: count }, (_, i) => {
const idx = pad
? String(i + startIndex).padStart(2, '0')
: i + startIndex
return `${base}/${prefix}${idx}.${ext}`
})
}
const rightMenu = ref([
// {
// url: "/static/index/newindex/rightmenu/0.png",
// name: '重点追踪'
// },
{
url: "/static/index/newindex/rightmenu/1.png",
name: '转单执行'
},
{
url: "/static/index/newindex/rightmenu/2.png",
name: '协助执行'
},
])
const leftArray = ref(genPaths(
'/static/index/newindex/leftmenu',
'left',
5,
'png',
0, // 起始索引
false // 不补零
))
const huliArray = ref(genPaths(
'/static/index/newindex/huli',
'care',
9, // 张数
'png',
0, // 起始索引
false // 不补零
))
const base = genPaths(
'/static/index/newindex/curve',
'curve_',
9,
'png',
1,
false
)
const blueArray = ref([
...base,
...[...base].reverse() // 先拷贝一份再反转,避免修改原 base
])
const basesmall = genPaths(
'/static/index/newindex/curve',
'breathe_',
9,
'png',
1,
false
)
const bluesmallArray = ref([
...basesmall,
...[...basesmall].reverse() // 先拷贝一份再反转,避免修改原 base
])
// 使用watch监听isShow变化
const transition = ref(false);
const name = ref("");
// 定义响应式数据现在时间
const currentTime = ref('');
const fullDate = ref('');
const weekDay = ref('');
let timerId = null;
// 更新时间、日期和星期的方法
const updateTime = () => {
const now = new Date();
// 获取当前时间的时分
const hours = now.getHours().toString().padStart(2, '0');
const minutes = now.getMinutes().toString().padStart(2, '0');
currentTime.value = `${hours}:${minutes}`;
// 获取星期几
const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
const week = weekDays[now.getDay()];
weekDay.value = week;
// 获取完整的日期(年/月/日)
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
const day = now.getDate().toString().padStart(2, '0');
fullDate.value = `${year}.${month}.${day}`;
};
onMounted(() => {
transition.value = false;
setTimeout(() => {
transition.value = true;
}, 50)
name.value = uni.getStorageSync('realname')
typeNow.value = 0;
timerId = updateTime();
// 每秒更新一次时间
setInterval(updateTime, 1000);
photoplay.value = true;
getmenu();
})
const filteredMenu = (index : number) => {
return leftMenuArray.value.filter(item => Number(item.areaFlag) - 1 == index);
}
const getmenu = () => {
queryPadPageList().then((res => {
leftMenuArray.value = res.result.records;
filteredMenu(0).forEach((element : any, index : number) => {
if (element.nuId === uni.getStorageSync('NUall').nuId) {
menutarget.value = index;
clickmenu(menutarget.value)
}
})
}))
}
const indexmessage = ref({});
const getgif = () => {
// let data = {
// nuId: uni.getStorageSync('NUall').nuId,
// employeeId: uni.getStorageSync('userInfo').employessId,
// workType: 5
// }
// queryWorkOrderList(data).then((res : any) => {
// console.log("看看图",res)
// indexmessage.value = res.result.records[0];
// console.log("看看图",'https://www.focusnu.com/media/upFiles/'+indexmessage.value.previewFile)
// })
}
const lanjie = ref(false);
const gotolook = () => {
uni.navigateTo({
url: "/pages/watch/full"
})
}
const minuteArr = ['00', '05', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55']
const timearr = ref(
Array.from({ length: 24 }, (_, hour) => ({
positioning: hour.toString(),
children: minuteArr.map(time => ({
tagName: time, // 表示分钟,如 '00', '05' 等
directiveName: '' // 默认的 directiveName
}))
}))
)
const nusing = ()=>{
emit('gospecial',1)
}
const jszlshow = ref(false)
const emotionTagList = ref([]);
const bodyTagList = ref([]);
const zzbqshow = ref(false)
const geteverything = () => {
if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) {
emotionTagList.value = [];
bodyTagList.value = [];
zzbqshow.value = true;
getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => {
res.result.emotionTagList.forEach(item=>{
if(item.izSelected == 'Y'){
emotionTagList.value.push(item)
}
})
res.result.bodyTagList.forEach(item=>{
if(item.izSelected == 'Y'){
bodyTagList.value.push(item)
}
})
// emotionTagList.value = res.result.emotionTagList;
// bodyTagList.value = res.result.bodyTagList;
console.log(res.result)
})
}
}
function getStatusDesc(type) {
switch (type) {
case '稳定':
return '标准情绪';
case '标准':
return '标准体重女100-120120-150';
case '焦虑':
return '无法控制情绪(哭泣/大笑)';
case '超重':
return '女超过120男超过150';
case '抑郁':
return '有自杀倾向';
case '强直':
return '四肢承伸直且僵硬无法弯曲状(标识要区分为左右和手脚)';
case '暴力':
return '有攻击他人倾向';
case '偏瘫':
return '四肢无知觉且无法支配但是并无僵硬,可弯曲(标识要区分为左右和手脚)';
case '恐惧':
return '被害妄想';
case '佝偻':
return '四肢承弯曲且僵硬无法伸直状(标识要区分为左右和手脚)';
case '烦躁':
return '对服务和对话都不耐烦';
case '易怒':
return '骂人';
case '臆想':
return '骗人/说谎,胡言乱语';
default:
return '';
}
}
function getleft(index) {
switch (index) {
case 0:
return 2.2;
case 1:
return 6;
case 2:
return 9.8;
case 3:
return 13.4;
}
}
const tagtarget = ref(-1);
const detail = ref("")
const leftnumber = ref(2.2)
const clicktag = (item, index) => {
tagtarget.value = index;
detail.value = getStatusDesc(item.tagName)
leftnumber.value = getleft(index);
bodyTagList.value = [];
emotionTagList.value = [];
}
</script>
<style scoped lang="less">
.jbsmall {
position: absolute;
width: 2.2vw;
height: 1.1vw;
top: -1vw;
left: 2.2vw;
z-index: 220;
transition: left 0.3s;
image {
width: 100%;
height: 100%;
}
}
.zzbqsmall {
width: 18vw;
// height: 6vw;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(136, 148, 167, 0.19);
border-radius: 1.2vw;
right: -0.8vw;
top: 15vw;
position: absolute;
z-index: 200;
display: flex;
// padding: 1.6vw 1.6vw 0;
padding: 1vw 2vw;
color: black;
font-size: 1vw;
}
.index-content-right {
width: 19.5vw;
margin-left: 2vw;
height: 100%;
transition: opacity 1s ease;
.right-time{
margin-top: 80rpx;
width: 100%;
height: 15vh;
background-color: #fff;
border-radius: 4vh;
display: flex;
flex-direction: column;
justify-content: center;
padding-left: 30rpx;
.time-top{
display: flex;
align-items: center;
font-size: 1.1vw;
.time-big{
font-size: 3.5vw;
font-weight: 600;
margin-right: 10rpx;
}
.time-week{
font-weight: 600;
}
}
}
.right-top {
margin-top: 25rpx;
width: 100%;
height: 35vh;
background-color: #fff;
border-radius: 4vh;
.top-title {
width: 80%;
height: 6vh;
display: flex;
align-items: center;
margin-left: 2vw;
font-size: 1.4vw;
font-weight: 600;
border-bottom: 1px solid #F2F2F2;
}
.top-list {
width: 100%;
height: 26vh;
margin-top: 1vw;
.list-view {
width: 86%;
margin-left: 7%;
height: 8vh;
border: 2rpx solid transparent;
border-radius: 7vw;
margin-bottom: 0.6vh;
display: flex;
align-items: center;
.list-img {
width: 4vw;
height: 4vw;
margin-left: 0.5vw;
margin-right: 0.5vw;
position: relative;
view{
width: 0.8vw;
height: 0.8vw;
background: #EE2C35;
border-radius: 50%;
position: absolute;
top: 0.3vw;
right: 0.5vw;
}
image{
width: 4vw;
height: 4vw;
}
}
.first-line {
display: flex;
.first-line-second {
background-color: #E5E5E5;
color: #555555;
width: 3.2vw;
height: 1.5vw;
display: flex;
justify-content: center;
align-items: center;
font-size: 0.9vw;
border-radius: 0.5vw;
margin-left: 0.5vw;
}
}
.second-line {
color: #999999;
margin-top: 0.2vw;
font-size: 1vw;
}
}
}
}
}
.right-bottom {
margin-top: 2vh;
width: 100%;
height: 38vh;
background-color: #fff;
border-radius: 3vh;
padding-top: 1vh;
display: flex;
flex-direction: column;
align-items: center;
.bottom-title {
width: 100%;
padding: 0 8%;
display: flex;
justify-content: space-between;
.bottom-carmera {
margin-top: 0.5vw;
width: 3vw;
height: 3vw;
}
}
.big-older {
margin-top: 0.5vw;
width: 9vw;
height: 9vw;
border: 1rpx solid #DCDCDC;
border-radius: 50%;
}
}
.index-content-other {
width: 65vw;
height: 100%;
transition: opacity 0.4s ease;
position: relative;
.abs-time {
position: absolute;
right: 20rpx;
top: 150rpx;
// width: 300rpx;
.big-time {
font-size: 90rpx;
font-weight: 600;
width: 100%;
justify-content: center;
// padding: 0 40rpx;
}
}
}
.right-container-title-nav {
margin-top: 80rpx;
display: flex;
height: 20vh;
position: relative;
font-size: 28rpx;
}
.date {
display: flex;
justify-content: space-around;
margin-top: 0.8vw;
}
.right-container-tem {
display: flex;
justify-content: space-between;
align-items: center;
width: 90%;
.right-container-tem-text {
font-size: 30rpx;
}
.right-container-tem-img {
width: 38rpx;
height: 38rpx;
margin-right: 5rpx;
transform: translateY(6rpx)
}
}
.photo-father {
width: 100%;
height: 1100rpx;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
margin-top: 0rpx;
}
.juzhong {
position: absolute;
top: 0%;
left: 50%;
transform: translate(-50%, -20%);
// 禁止动画阻挡逻辑
z-index: -1;
}
.weight-time {
font-weight: 800;
font-size: 70rpx;
margin-top: 2vw;
position: relative;
margin-left: -50rpx;
}
.big-img {
margin-top: 40rpx;
height: 450rpx;
z-index: 10;
}
.server-name {
font-size: 35rpx;
margin-right: 10rpx;
font-weight: 600;
margin-top: 2vw;
}
.server-bgc {
width: 160rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
.bgc-img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.bgc-font {
color: #fff;
z-index: 1;
}
.states-father {
display: flex;
margin: 0 20rpx;
}
.start-button {
width: 100%;
height: 100%;
background: linear-gradient(to bottom, #009DEF, #0076FF);
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
color: #fff;
font-size: 30rpx;
}
.end-button {
width: 100%;
height: 100%;
background: linear-gradient(to bottom, #FFFFFF, #C8D0D9);
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
font-size: 30rpx;
}
.pao-father {
position: absolute;
top: 20rpx;
right: -110rpx;
font-size: 22rpx;
width: 100rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
color: #FFFFFF;
.pao-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
.left-menu {
position: absolute;
top: 55%;
left: 100rpx;
transform: translateY(-50%);
}
.zoom {
transform: scale(1.2);
transform-origin: bottom left;
transition: transform 1s ease;
}
.left-ball {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
.left-menu-img {
width: 40rpx;
height: 40rpx;
}
}
.right-menu {
position: absolute;
top: 60%;
right: 80rpx;
transform: translateY(-50%);
display: flex;
flex-direction: column;
align-items: center;
width: 140rpx;
.top-img {
width: 140rpx;
height: 110rpx;
padding: 0 50rpx;
}
.right-scroll {
width: 100%;
height: 450rpx;
}
.white-circle {
height: 170rpx;
border-radius: 60rpx;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
text-align: center;
font-size: 25rpx;
width: 100rpx;
.right-menu-img {
width: 50rpx;
height: 50rpx;
}
.right-menu-name {
width: 50rpx;
}
}
}
.zhezhao-top {
position: absolute;
top: 105rpx;
left: 0%;
width: 120%;
height: 120rpx;
z-index: 4;
}
.zhezhao-bottom {
position: absolute;
bottom: 105rpx;
left: 0%;
width: 120%;
height: 120rpx;
z-index: 4;
}
.zhezhao-left {
position: absolute;
top: 0rpx;
left: 0%;
height: 100%;
width: 120rpx;
background: linear-gradient(to right,
rgba(239, 240, 244, 1) 0%,
/* #eff0f4 全不透明 */
rgba(239, 240, 244, 0) 100%
/* #eff0f4 完全透明 */
);
z-index: 4;
}
.zhezhao-right {
position: absolute;
top: 0rpx;
right: 0%;
height: 100%;
width: 120rpx;
background: linear-gradient(to left,
rgba(239, 240, 244, 1) 0%,
/* #eff0f4 全不透明 */
rgba(239, 240, 244, 0) 100%
/* #eff0f4 完全透明 */
);
z-index: 4;
}
.title-card-right {
position: absolute;
right: 0;
top: 0;
width: 10vw;
height: 9.4vw;
border-radius: 2vw;
background-color: #E4EBF4;
padding: 1.6vw;
margin-right: 1.5vw;
border: 2rpx solid #D2DFF0;
}
.title-card {
width: 10vw;
height: 9vw;
border-radius: 2vw;
background-color: #FFFFFF;
padding: 1.6vw;
position: relative;
margin-right: 1.5vw;
}
.card-bottom {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 3vw;
display: flex;
.bottom-img {
width: 1.6vw;
height: 1.6vw;
margin-left: 1.8vw;
}
.bottom-font {
color: #555555;
font-size: 1.4vw;
margin-left: 0.5vw;
}
}
.card-top {
width: 100%;
display: flex;
justify-content: space-between;
position: relative;
.card-top-left {
font-size: 1.8vw;
font-weight: 600;
}
.card-top-right {
width: 2vw;
height: 2vw;
border-radius: 50%;
background-color: #F1F2F3;
display: flex;
justify-content: center;
align-items: center;
.right-img {
width: 0.8vw;
height: 0.8vw;
}
}
.card-spec {
position: absolute;
top: 1.1vw;
left: 1.6vw;
width: 1.5vw;
height: 2vw;
// background-color: #0076FF;
.line {
position: absolute;
inset: 0;
background: linear-gradient(to bottom right,
transparent calc(50% - 1px),
#d5d5d5 50%,
transparent calc(50% + 1px))
}
.line-gray {
position: absolute;
right: -1.1vw;
bottom: -0.6vw;
color: #888888;
font-size: 1.3vw;
}
}
}
.title-time {
position: absolute;
right: 0;
top: 0;
width: 15vw;
height: 9.5vw;
border-radius: 2vw;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
.time-title {
font-weight: 600;
font-size: 3vw;
margin-top: 0.4vw;
}
.time-date {
margin-top: 0.2vw;
font-size: 1.3vw;
color: #222222;
}
}
.blue-button {
margin-top: 0.5vw;
width: 7vw;
height: 2.5vw;
background: linear-gradient(to bottom, #009DEF, #0076FF);
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
color: #fff;
font-size: 28rpx;
position: relative;
}
.name-weight {
font-size: 2vw;
font-weight: 600;
margin: 0.2vw 0;
}
.message-view {
display: flex;
.message-shu {
width: 3rpx;
height: 1.5vw;
background-color: #bcc1c7;
margin: 0 0.4vw;
margin-top: 0.1vw;
}
.message-img {
width: 1.5vw;
height: 1.5vw;
margin-top: 0.1vw;
}
}
.message-bottom {
margin-top: 0.5vh;
width: 100%;
height: 4vh;
display: flex;
justify-content: center;
.bottom-tags {
background-color: #E7F1FF;
color: #0084FA;
height: 100%;
display: flex;
align-items: center;
padding: 0 0.4vw;
border-radius: 0.8vw;
font-size: 1.2vw;
margin: 0 0.2vw;
white-space: nowrap;
flex-wrap: nowrap;
}
}
.fixed-card {
position: fixed;
right: 2.4vw;
top: 5.8vh;
width: 35vw;
height: 28vh;
background-color: rgba(239, 246, 255, 0.95);
border-radius: 1.5vw;
border: 1rpx solid #638DFF;
box-shadow: 0 2rpx 6rpx #A0B9FF;
display: flex;
align-items: center;
transition: all 0.5s ease;
padding:0 0 0 1.5vw;
.fixed-card-left {
display: flex;
flex-direction: column;
align-items: center;
margin-right:1.2vw;
.card-left-img {
width: 12vw;
height: 8vw;
}
}
.big-time {
font-weight: 600;
font-size: 2.8vw;
}
.icon-people {
display: flex;
margin: 0.3vw 0;
color: #555555;
.people-img {
width: 1.5vw;
height: 1.5vw;
margin-right: 0.3vw;
margin-top: 0.1vw;
}
}
.icon-button {
display: flex;
margin-top: 1vw;
font-size: 1.5vw;
width: 18.5vw;
justify-content: space-around;
.button-left {
width: 8.5vw;
height: 3.3vw;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
border-radius: 1.2vw;
border: 1rpx solid #C7D2E4;
color: #333333;
}
.button-right {
width: 8.5vw;
height: 3.3vw;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
border-radius: 1.2vw;
border: 1rpx solid #5AAEFF;
color: #249BFA;
background: linear-gradient(to bottom, #fff, #D1EAFF);
}
}
}
.left-open {
position: absolute;
left: -1.5vw;
top: 50%;
transform: translateY(-50%);
width: 3vw;
height: 5vw;
border: 1rpx solid #B8C4DA;
background-color: #F2F7FD;
z-index: 999;
border-radius: 3vw;
display: flex;
justify-content: center;
align-items: center;
transition: all 0.5s ease;
.open-img {
width: 3vw;
height: 3vw;
}
}
.noarray {
width: 90%;
height: 100%;
// background-color: red;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.noarray-img {
margin-top: -200rpx;
width: 350rpx;
height: 350rpx;
}
}
.noarray-font {
margin-top: -60rpx;
color: #888888;
font-size: 25rpx;
}
.mengban {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 100;
background: RGBA(239, 240, 244, 0.55);
}
.photowall {
position: fixed;
top: 54%;
left: 50%;
transform: translate(-50%, -50%);
width: 80vw;
height: 83%;
border-radius: 30rpx;
background-color: #fff;
transition: all 0.3s;
z-index: 9990;
box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.1);
padding: 0 90rpx;
.photowall-title {
margin-top: 50rpx;
display: flex;
justify-content: space-between;
width: 100%;
margin-bottom: 50rpx;
.photowall-name {
font-size: 38rpx;
// font-weight: 600;
}
.photowall-left {
color: #888888;
}
.photowall-right {
font-size: 30rpx;
font-weight: 600;
}
}
.photowall-other {
width: 76vw;
height: 62vh;
display: flex;
margin-top: 20rpx;
flex-wrap: wrap;
.photowall-other-one {
width: 22vw;
height: 430rpx;
margin-right: 3vw;
margin-bottom: 0%;
border-radius: 30rpx;
display:flex;
position: relative;
video{
width: 100%;
height: 100%;
}
}
}
}
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.jsh0{
height: 0vw !important;
padding: 0 2vw !important;
top: 9.4vw !important;
}
.jszl{
width: 64.5vw;
height: 44vw;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(136,148,167,0.19);
border-radius: 2.2vw;
position: absolute;
top: 11vw;
right: 0;
z-index: 200;
padding: 2vw;
overflow: hidden;
.submit{
width: 100%;
height: 3.2vw;
margin-top: 0.4vw;
padding-right: 2vw;
display: flex;
justify-content: flex-end;
view{
display: flex;
justify-content: center;
align-items: center;
&:nth-child(1){
width: 7.1vw;
height: 3.2vw;
background: #F8F8F8;
border-radius: 1.6vw;
border: 1px solid #E5E5E5;
font-weight: 400;
font-size: 1.4vw;
color: #555555;
}
&:nth-child(2){
width: 7.1vw;
height: 3.2vw;
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
border-radius: 1.6vw;
border: 1px solid rgba(3,133,250,0.34);
font-weight: 400;
font-size: 1.4vw;
color: #1083F8;
margin-left: 0.7vw;
}
}
}
.scrol{
width: 110%;
height: 29.5vw;
display: flex;
flex-wrap: wrap;
.cdk{
width: 6.1vw;
height: 6.1vw;
background: #F8F8F8;
border-radius: 1.6vw;
margin: 1.5vw 1.5vw 0 0vw;
display: inline-block;
border: 1px solid #F8F8F8;
text-align: center;
image{
width: 2vw;
height: 2vw;
margin: 1.4vw auto 0vw;
}
text{
display: block;
text-align: center;
font-weight: 400;
font-size: 1.1vw;
color: #333333;
width: 100%;
}
}
.act{
background: #F2F8FF;
border: 1px solid rgba(1,125,233,0.43);
text{
color: #017DE9;
}
}
}
.spiw{
width: 14vw;
height: 2vw;
display: flex;
justify-content: space-around;
margin-top: 2.5vw;
view{
font-weight: 400;
font-size: 1.3vw;
color: #555555;
position: relative;
line-height: 1.5vw;
}
.act{
color: #222222 !important;
font-weight: 500;
}
.act::after{
width: 50%;
height: 0.2vw;
background: #0089FE;
border-radius: 0.1vw;
content: '';
position: absolute;
bottom: 0;
left: 25%;
}
}
.tittop{
height: 2vw;
font-weight: 400;
font-size: 1.4vw;
color: #333333;
display: flex;
align-items: center;
view{
width: 0.4vw;
height: 1.2vw;
background: #017DE9;
border-radius: 0.2vw;
margin-right: 0.8vw;
}
}
}
.bianj{
position: absolute;
width: 2.2vw;
height: 1.1vw;
top: 9.68vw;
right: 2.5vw;
z-index: 220;
image{
width: 100%;
height: 100%;
}
}
.jb{
position: absolute;
width: 2.2vw;
height: 1.1vw;
top: 2.7vw;
right: 1.5vw;
z-index: 201;
image{
width: 100%;
height: 100%;
}
}
.zzh0{
height: 0vw !important;
padding: 0 1.6vw !important;
// top: 2.7vw !important;
}
.zzbq{
width: 18vw;
height: 10vw;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(136,148,167,0.19);
border-radius: 1.6vw;
right: -0.8vw;
top: 4vw;
position: absolute;
z-index: 200;
display: flex;
padding: 1.6vw 1.6vw 0;
.carfd{
width: 7.4vw;
height: 100%;
.tg{
width: 100%;
display: flex;
justify-content: space-around;
margin-top: 1vw;
view{
width: 1.8vw;
image{
width: 1.8vw;
height: 1.8vw;
}
text{
font-weight: 400;
font-size: 0.8vw;
color: #666666;
margin-top: 0.2vw;
}
}
}
.tittop{
height: 2vw;
font-weight: 400;
font-size: 1.1vw;
color: #333333;
display: flex;
align-items: center;
view{
width: 0.4vw;
height: 1.2vw;
background: #017DE9;
border-radius: 0.2vw;
margin-right: 0.8vw;
}
}
}
}
</style>