This commit is contained in:
wangweidong 2026-01-29 17:34:47 +08:00
commit a4e24d4993
12 changed files with 542 additions and 319 deletions

View File

@ -791,8 +791,8 @@
top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
width: 98%; width: 100%;
height: 98%; height: 103%;
z-index: 10; z-index: 10;
.blue-img { .blue-img {
@ -1332,15 +1332,32 @@
.title-time-border-yellow { .title-time-border-yellow {
margin: 10rpx; margin: 10rpx;
border: 2rpx solid transparent; border: 2rpx solid transparent;
/* background: linear-gradient(to bottom, #fff1db, #ffe2b2); */
width: calc(100% - 40rpx);
height: calc(100% - 40rpx);
border-radius: 20rpx; border-radius: 20rpx;
display: flex; display: flex;
justify-content: center;
align-items: center; align-items: center;
background-color: rgba(255, 255, 255, 0.5); background-color: rgba(255, 255, 255, 0.5);
flex-direction: column; flex-direction: column;
/* box-shadow: 8rpx 8rpx 16rpx rgba(255, 138, 0, 0.7); */ font-size: 30rpx;
overflow: hidden;
width: 240rpx;
height: 170rpx;
/* background-color: red; */
.kill-icon {
margin-top: 10rpx;
width: 70rpx;
height: 70rpx;
/* 性能关键 */
will-change: transform;
transform-origin: 50% 52%;
}
.kill-text {
white-space: nowrap;
color: #818181;
font-size: 30rpx;
}
} }
.title-time-border-yellow-active-transparent { .title-time-border-yellow-active-transparent {
@ -1739,7 +1756,7 @@
.neuro-box { .neuro-box {
position: relative; position: relative;
width: 600rpx; width: 600rpx;
height: 450rpx; height: 550rpx;
border-radius: 30rpx; border-radius: 30rpx;
background-color: #fff; background-color: #fff;
display: flex; display: flex;
@ -1749,17 +1766,7 @@
padding: 0 5%; padding: 0 5%;
} }
.button {
width: 47%;
background-color: #ddf0ff;
display: flex;
justify-content: center;
align-items: center;
color: #007CFF;
border: 1rpx solid #007CFF;
font-size: 25rpx;
border-radius: 30rpx;
}
.title { .title {
margin-top: 70rpx; margin-top: 70rpx;
@ -1775,13 +1782,26 @@
} }
.button-white { .button-white {
width: 47%; width: 30%;
border: 2rpx solid #c3cacd; border: 2rpx solid #c3cacd;
background: linear-gradient(to bottom, #f3f3f5, #dee4e9); background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
font-size: 25rpx; font-size: 30rpx;
border-radius: 30rpx;
margin-right: 20rpx;
}
.button {
width: 30%;
background-color: #ddf0ff;
display: flex;
justify-content: center;
align-items: center;
color: #007CFF;
border: 1rpx solid #007CFF;
font-size: 30rpx;
border-radius: 30rpx; border-radius: 30rpx;
} }
@ -1793,8 +1813,9 @@
width: 100%; width: 100%;
height: 70rpx; height: 70rpx;
display: flex; display: flex;
justify-content: space-between; /* justify-content: space-between; */
padding: 0 50rpx; justify-content: center;
/* padding: 0 100rpx; */
} }
.right-container-title-nav { .right-container-title-nav {
@ -2162,7 +2183,6 @@
.setting-warn { .setting-warn {
width: 89%; width: 89%;
margin-left: 5.5%; margin-left: 5.5%;
height: 47rpx;
border: 2rpx dashed #EE2C35; border: 2rpx dashed #EE2C35;
display: flex; display: flex;
align-items: center; align-items: center;
@ -2171,9 +2191,14 @@
border-radius: 10rpx; border-radius: 10rpx;
background-color: #FFF6F6; background-color: #FFF6F6;
font-size: 25rpx; font-size: 25rpx;
/* margin-top: 0 10rpx; */
margin-top: -10rpx; margin-top: -10rpx;
margin-bottom: 10rpx; margin-bottom: 10rpx;
overflow: hidden;
transition: max-height 500ms ease, opacity 500ms ease;
height: 47rpx;
/* 写死 */
line-height: 47rpx;
/* 文字垂直居中 */
} }
.triangle { .triangle {
@ -2298,7 +2323,27 @@
background-color: #F6F9FF; background-color: #F6F9FF;
flex-direction: column; flex-direction: column;
} }
.title-time-border-error{
border: 2rpx solid red;
width: calc(100% - 15rpx);
height: calc(100% - 15rpx);
border-radius: 20rpx;
display: flex;
align-items: center;
background-color: rgba(238, 44, 53, 0.05);
flex-direction: column;
}
.title-time-border-own{
border: 2rpx dashed #5E8EF6;
width: calc(100% - 15rpx);
height: calc(100% - 15rpx);
border-radius: 20rpx;
display: flex;
align-items: center;
background-color: #F6F9FF;
flex-direction: column;
opacity: 0.3;
}
.title-time { .title-time {
display: flex; display: flex;
width: 100%; width: 100%;
@ -3293,10 +3338,10 @@
width: 100%; width: 100%;
height: 200rpx; height: 200rpx;
display: flex; display: flex;
padding-top:15rpx; padding-top: 15rpx;
position: relative; position: relative;
.target-edit { .target-edit {
position: absolute; position: absolute;
right: 5rpx; right: 5rpx;
@ -3339,7 +3384,8 @@
font-size: 23rpx; font-size: 23rpx;
color: #222222; color: #222222;
} }
.target-black{
.target-black {
position: absolute; position: absolute;
top: 2.5rpx; top: 2.5rpx;
right: 0; right: 0;
@ -3354,13 +3400,127 @@
color: #919191; color: #919191;
} }
} }
.packtarget-serviceContent{
.packtarget-serviceContent {
width: 430rpx; width: 430rpx;
height: 100rpx; height: 100rpx;
margin-top: 10rpx; margin-top: 10rpx;
font-size: 25rpx; font-size: 25rpx;
color: #666666; color: #666666;
}
/* 隐藏状态 */
.collapsed {
max-height: 0;
opacity: 0;
padding-top: 0;
/* 如需彻底压缩可把内边距也为0 */
padding-bottom: 0;
}
/* 展开状态 */
.expanded {
max-height: 47rpx;
opacity: 1;
}
.card-box {
margin-top: 20rpx;
width: 259rpx;
height: 245rpx;
border-radius: 20rpx;
background: #fff;
will-change: transform;
pointer-events: none;
z-index: 200;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.title-time-blue-card {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 98%;
height: 98%;
z-index: 10;
.blue-img {
width: 100%;
height: 100%;
}
}
.card-bao {
position: absolute;
left: 35rpx;
top: 110rpx;
width: 32rpx;
height: 32rpx;
font-size: 24rpx;
display: flex;
justify-content: center;
align-items: center;
background-color: #4690FF;
color: #fff;
border-radius: 5rpx;
}
.title-time-border-hisOk {
border: 2rpx solid #D4E4FE;
width: calc(100% - 15rpx);
height: calc(100% - 15rpx);
border-radius: 20rpx;
display: flex;
align-items: center;
background-color: #F6F9FF;
flex-direction: column;
font-size: 30rpx;
overflow: hidden;
border: 2rpx solid #46B2F6;
.title-time {
display: flex;
width: 100%;
position: relative;
height: 100%;
padding: 25rpx;
padding-top: 18rpx;
flex-direction: column;
.title-time-font-rel {
margin-top: 9rpx;
font-size: 33rpx;
font-weight: 800;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: black;
}
.title-time-font-tags {
font-size: 24rpx;
font-weight: 600;
/* margin-bottom: 5rpx; */
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: #999;
}
.card-time {
position: absolute;
bottom: 30rpx;
left: 30rpx;
font-size: 30rpx;
.weight-time {
display: flex;
}
}
}
}
} }

View File

@ -23,7 +23,7 @@
<view class="super-card-container"> <view class="super-card-container">
<scroll-view style="width: 100%;" scroll-with-animation :scroll-left="cardLeft" <scroll-view style="width: 100%;" scroll-with-animation :scroll-left="cardLeft"
:scroll-x="canmove" @scroll="handleTop" :show-scrollbar="false"> :scroll-x="canmovechange" @scroll="handleTop" :show-scrollbar="false">
<view style="display: flex;width:4824rpx;"> <view style="display: flex;width:4824rpx;">
<view v-for="(item0,index0) in timearr" :key="index0" class="super-card-right"> <view v-for="(item0,index0) in timearr" :key="index0" class="super-card-right">
<view class="super-card-time"> <view class="super-card-time">
@ -34,7 +34,7 @@
<view style="display: flex;height: 1225rpx;position: relative;"> <view style="display: flex;height: 1225rpx;position: relative;">
<view class="xian-bian"></view> <view class="xian-bian"></view>
<scroll-view style="height: 100%;width:6960rpx;background-color: #fff;" <scroll-view style="height: 100%;width:6960rpx;background-color: #fff;"
:scroll-top="scrollTop" scroll-with-animation :scroll-y="canmove" :scroll-top="scrollTop" scroll-with-animation :scroll-y="canmovechange"
@scroll="handleScrolltime" :show-scrollbar="false"> @scroll="handleScrolltime" :show-scrollbar="false">
<view style="display: flex;height: 100%;"> <view style="display: flex;height: 100%;">
<view v-for="(item0,index0) in timearr" :key="index0"> <view v-for="(item0,index0) in timearr" :key="index0">
@ -49,16 +49,20 @@
@click="rulerTouchClick(item1,index0,index1)" @click="rulerTouchClick(item1,index0,index1)"
:data-index0="index0" :data-index1="index1"> :data-index0="index0" :data-index1="index1">
<view class="title-time-blue" <view class="title-time-blue"
v-show="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1"> v-show="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && !isTuoing">
<image class="blue-img" src="/static/index/newtarget.png" />
</view>
<view class="title-time-blue"
v-show="targetrule[0] == index0 && targetrule[1] == index1 && isTuoing">
<image class="blue-img" <image class="blue-img"
src="/static/index/bluetarget.png" /> :src="`/static/index/newtarget${timearr[index0]?.children[index1]?.id?`red`:``}.png`" />
</view> </view>
<view class="card-bao" v-if="item1.izPackage==`Y`"> <view class="card-bao" v-if="item1.izPackage==`Y`">
</view> </view>
<view :class="getClass(item1,index0,index1)" <view :class="getClass(item1,index0,index1)"
style="font-size: 30rpx;overflow: hidden;" style="font-size: 30rpx;overflow: hidden;"
:style="{ animationDelay:`-${computeDelay(index0, index1).toFixed(2)}s`,border:saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1? `2rpx solid #46B2F6`:'' }"> :style="{ animationDelay:`-${computeDelay(index0, index1).toFixed(2)}s`,border:saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && !isTuoing? `2rpx solid #46B2F6`:'' }">
<view class="title-time" v-if="item1.startTime" <view class="title-time" v-if="item1.startTime"
style="flex-direction: column;"> style="flex-direction: column;">
@ -114,8 +118,9 @@
<view class="tags-img-father"> <view class="tags-img-father">
<view v-for="(item,index) in bodyTagListLook" :key="index" <view v-for="(item,index) in bodyTagListLook" :key="index"
class="tags-img-view"> class="tags-img-view">
<image class="tags-img" :src="serverUrl + item.pic" /> <image class="tags-img"
<view class=""> :src="item.pic ? (serverUrl + item.pic) : noimageshow" />
<view style="white-space: nowrap;">
{{ item.tagName }} {{ item.tagName }}
</view> </view>
</view> </view>
@ -130,7 +135,8 @@
<view class="tags-img-father" style="margin-left: 10rpx;"> <view class="tags-img-father" style="margin-left: 10rpx;">
<view v-for="(item,index) in emotionTagListLook" :key="index" <view v-for="(item,index) in emotionTagListLook" :key="index"
class="tags-img-view"> class="tags-img-view">
<image class="tags-img" :src="serverUrl + item.pic" /> <image class="tags-img"
:src="item.pic ? (serverUrl + item.pic) : noimageshow" />
<view class=""> <view class="">
{{ item.tagName }} {{ item.tagName }}
</view> </view>
@ -153,8 +159,8 @@
</view> </view>
<view class="menu-heng" :style="menutype?{left:`222rpx`}:{}"></view> <view class="menu-heng" :style="menutype?{left:`222rpx`}:{}"></view>
</view> </view>
<view class="setting-warn"> <view class="setting-warn" :class="[showtomuch ? 'expanded' : 'collapsed']">
{{ menutype?`情绪`:`体型`}}标签可复选两项 {{ (menutype ? '情绪' : '体型') + '标签可复选两项' }}
</view> </view>
<view class="setting-list"> <view class="setting-list">
<scroll-view style="height: 100%;width:100%;" scroll-with-animation scroll-y> <scroll-view style="height: 100%;width:100%;" scroll-with-animation scroll-y>
@ -163,9 +169,11 @@
<view :class="item.izSelected==`Y`?`check-box-target`: `check-box`"> <view :class="item.izSelected==`Y`?`check-box-target`: `check-box`">
</view> </view>
<image class="check-img" <image class="check-img" :src="
:src="serverUrl + (item.izSelected==`Y`?item.picFocus: item.pic)" /> item.izSelected === 'Y'
<view class="check-text-view"> ? (item.picFocus ? serverUrl + item.picFocus : noimageshow)
: (item.pic ? serverUrl + item.pic : noimageshow)" />
<view class=" check-text-view">
<view class="check-weight" <view class="check-weight"
:style="item.izSelected==`Y`?{color:`#0074E1`}: {}"> :style="item.izSelected==`Y`?{color:`#0074E1`}: {}">
{{ item.tagName }} {{ item.tagName }}
@ -186,7 +194,7 @@
<view class="forfixed" @click.stop> <view class="forfixed" @click.stop>
<view class="right-instant" v-show="!openmore" <view class="right-instant" v-show="!openmore"
:style="isblue==`1`?{border:`4rpx dashed #0089FE`}:{border:`4rpx dashed #fff`}"> :style="isblue==`1`&&isTuoing?{border:`4rpx dashed #0089FE`}:{border:`4rpx dashed #fff`}">
<view class="right-instant-title"> <view class="right-instant-title">
<view class="blue-shu" style="margin-left: 30rpx;"></view> <view class="blue-shu" style="margin-left: 30rpx;"></view>
<view class="blue-font"> <view class="blue-font">
@ -201,20 +209,19 @@
<view class="forscroll" @touchstart="startdelete" @touchend="enddelete"> <view class="forscroll" @touchstart="startdelete" @touchend="enddelete">
<view class="instant" :class="{ pop: popping && index === 0 }" <view class="instant" :class="{ pop: popping && index === 0 }"
v-for="(item,index) in bottomItems.slice(0,3)"> v-for="(item,index) in bottomItems.slice(0,3)">
<image class="instant-icon" :src="serverUrl+item.immediateFile" <image class="instant-icon"
:src="item.immediateFile? (serverUrl + item.immediateFile ) : noimageshow "
:class="deleteshake?`wiggle`:``" mode="aspectFill"></image> :class="deleteshake?`wiggle`:``" mode="aspectFill"></image>
<view class="instant-text"> <view class="instant-text">
{{ item.directiveName }} {{ item.directiveName }}
</view> </view>
<view class="instant-close" v-show="deleteshake" <view class="instant-close" v-show="deleteshake"
@click.stop="killjishi(item.id)"> @click.stop="killinstantopen(item)">
<image style="width: 100%;height: 100%;" <image style="width: 80%;height: 80%;"
src="/static/index/deleticon.png" mode="aspectFill"></image> src="/static/index/deleticon.png" mode="aspectFill"></image>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="instant-more" v-if="bottomItems.length > 3" @click="clickopenmore"> <view class="instant-more" v-if="bottomItems.length > 3" @click="clickopenmore">
<image class="more-imge" src="/static/index/down.png" /> <image class="more-imge" src="/static/index/down.png" />
@ -222,7 +229,7 @@
</view> </view>
</view> </view>
<view class="right-instant-more" v-if="openmore" @click="deleteshake = false" <view class="right-instant-more" v-if="openmore" @click="deleteshake = false"
:style="isblue?{border:`4rpx dashed #0089FE`}:{border:`4rpx dashed #fff`}"> :style="isblue==`1`&&isTuoing?{border:`4rpx dashed #0089FE`}:{border:`4rpx dashed #fff`}">
<view class="right-instant-title"> <view class="right-instant-title">
<view class="blue-shu" style="margin-left: 30rpx;"></view> <view class="blue-shu" style="margin-left: 30rpx;"></view>
<view class="blue-font"> <view class="blue-font">
@ -236,16 +243,18 @@
<view class="forscroll" @touchstart="startdelete" @touchend="enddelete"> <view class="forscroll" @touchstart="startdelete" @touchend="enddelete">
<view class="instant" v-for="(item,index) in bottomItems" <view class="instant" v-for="(item,index) in bottomItems"
@click="clickinstant(index)"> @click="clickinstant(index)">
<image class="instant-icon" :class="deleteshake?`wiggle`:``" <image class="instant-icon" :class="deleteshake?`wiggle`:``" :src="
:src="index === moreindex?serverUrl+item.immediateFileFocus:serverUrl+item.immediateFile" index === moreindex
mode="aspectFill"></image> ? (item.immediateFileFocus ? serverUrl + item.immediateFileFocus : noimageshow)
: (item.immediateFile ? serverUrl + item.immediateFile : noimageshow)
" mode="aspectFill"></image>
<view class="instant-text" <view class="instant-text"
:style="index === moreindex?{color:`#0084ff`}:{}"> :style="index === moreindex?{color:`#0084ff`}:{}">
{{ item.directiveName }} {{ item.directiveName }}
</view> </view>
<view class="instant-close" v-show="deleteshake" <view class="instant-close" v-show="deleteshake"
@click.stop="killjishi(item.id)"> @click.stop="killinstantopen(item)">
<image style="width: 100%;height: 100%;" <image style="width: 80%;height: 80%;"
src="/static/index/deleticon.png" mode="aspectFill"></image> src="/static/index/deleticon.png" mode="aspectFill"></image>
</view> </view>
</view> </view>
@ -309,15 +318,17 @@
</view> </view>
<view class="three-items" v-show="!ruleritem.directiveName && !servertype"> <view class="three-items" v-show="!ruleritem.directiveName && !servertype">
<view class="tree-item"> <view class="tree-item">
<scroll-view style="height: 100%;width:100%;" :scroll-y="canmove" <scroll-view style="height: 100%;width:100%;" :scroll-y="canmovechange"
@scroll="handleScroll"> @scroll="handleScroll">
<view class="tree-card" <view class="tree-card"
v-for="(item,index) in bigArray[upmenuIndex]?.children[downmenuIndex]?.children" v-for="(item,index) in bigArray[upmenuIndex]?.children[downmenuIndex]?.children"
:key="index" @touchstart="handleTouchStart(item,$event)" :key="index" @touchstart="handleTouchStart(item,$event)"
@click="clickaddnew(item,index)"> @click="clickaddnew(item,index)">
<image class="card-icon" <image class="card-icon" :src="
:src="index === thirdmenuIndex?serverUrl+item.immediateFileFocus:serverUrl+item.immediateFile" index === thirdmenuIndex
mode="aspectFill"></image> ? (item.immediateFileFocus ? serverUrl + item.immediateFileFocus : noimageshow)
: (item.immediateFile ? serverUrl + item.immediateFile : noimageshow)
" mode="aspectFill"></image>
<view class="card-text" style="margin-top: 0;" <view class="card-text" style="margin-top: 0;"
:style="index === thirdmenuIndex?{color:`#0084ff`}:{}"> :style="index === thirdmenuIndex?{color:`#0084ff`}:{}">
{{ item.title }} {{ item.title }}
@ -327,7 +338,7 @@
</view> </view>
<view class="tree-item"> <view class="tree-item">
<scroll-view style="height: 100%;width:100%;" scroll-with-animation <scroll-view style="height: 100%;width:100%;" scroll-with-animation
:scroll-y="canmove"> :scroll-y="canmovechange">
<view class="tree-card" v-for="(item,index) in bigArray[upmenuIndex]?.children" <view class="tree-card" v-for="(item,index) in bigArray[upmenuIndex]?.children"
:key="index" @click="secondContant(index)"> :key="index" @click="secondContant(index)">
<donghua :width="`50rpx`" :height="`50rpx`" :links="item.url" <donghua :width="`50rpx`" :height="`50rpx`" :links="item.url"
@ -341,7 +352,7 @@
</view> </view>
<view class="tree-item" style="width: 28%;"> <view class="tree-item" style="width: 28%;">
<scroll-view style="height: 100%;width:100%;" scroll-with-animation <scroll-view style="height: 100%;width:100%;" scroll-with-animation
:scroll-y="canmove"> :scroll-y="canmovechange">
<view class="tree-card" v-for="(item,index) in bigArray" :key="index" <view class="tree-card" v-for="(item,index) in bigArray" :key="index"
@click="changLeft(index)"> @click="changLeft(index)">
<donghua :width="`50rpx`" :height="`50rpx`" :links="item.url" <donghua :width="`50rpx`" :height="`50rpx`" :links="item.url"
@ -355,7 +366,7 @@
</view> </view>
<view class="three-items" v-show="!ruleritem.directiveName && servertype" <view class="three-items" v-show="!ruleritem.directiveName && servertype"
style="flex-direction: column;"> style="flex-direction: column;">
<scroll-view class="pack-title" scroll-with-animation :scroll-x="canmove"> <scroll-view class="pack-title" scroll-with-animation :scroll-x="canmovechange">
<view class="pack-father"> <view class="pack-father">
<view class="packs" :style="packnumber==index?{color:`#0089FE`}:{}" <view class="packs" :style="packnumber==index?{color:`#0089FE`}:{}"
v-for="(item,index) in savePackagelist" :key="index" v-for="(item,index) in savePackagelist" :key="index"
@ -371,12 +382,13 @@
<view class="pack-heng"> <view class="pack-heng">
</view> </view>
<scroll-view class="pack-detail" scroll-with-animation :scroll-y="canmove"> <scroll-view class="pack-detail" scroll-with-animation :scroll-y="canmovechange">
<view class="detail-father"> <view class="detail-father">
<view class="details" <view class="details"
v-for="(item,index) in savePackagelist[packnumber]?.directives" v-for="(item,index) in savePackagelist[packnumber]?.directives"
:key="index"> :key="index">
<image class="detail-icon" :src="serverUrl+item.immediateFile" <image class="detail-icon"
:src="item.immediateFile ? serverUrl + item.immediateFile : noimageshow"
mode="aspectFill"> mode="aspectFill">
</image> </image>
<view class=""> <view class="">
@ -405,7 +417,8 @@
</view> </view>
<view class="target-contain"> <view class="target-contain">
<view class="image-father"> <view class="image-father">
<image class="target-img" :src="serverUrl + ruleritem.immediateFile" /> <image class="target-img"
:src="ruleritem.immediateFile ? serverUrl + ruleritem.immediateFile : noimageshow" />
</view> </view>
<view class="image-right"> <view class="image-right">
<view class="right-title"> <view class="right-title">
@ -436,6 +449,10 @@
<view class="target-smalltext"> <view class="target-smalltext">
{{ ruleritem.serviceContent }} {{ ruleritem.serviceContent }}
</view> </view>
<view class="target-edit" style="right: 150rpx;" @click.stop="editcardname"
v-show="editingmode">
修改
</view>
<view class="target-edit" @click.stop="edititems(ruleritem)" v-show="editingmode"> <view class="target-edit" @click.stop="edititems(ruleritem)" v-show="editingmode">
编辑 编辑
</view> </view>
@ -468,14 +485,16 @@
</view> </view>
</view> </view>
<view class="packtarget-heng"></view> <view class="packtarget-heng"></view>
<scroll-view class="packtarget-detail" scroll-with-animation :scroll-y="canmove"> <scroll-view class="packtarget-detail" scroll-with-animation :scroll-y="canmovechange">
<view class="detail-father"> <view class="detail-father">
<view class="details" :style="packtargetindex==index?{color:`#0089FE`}:{}" <view class="details" :style="packtargetindex==index?{color:`#0089FE`}:{}"
v-for="(item,index) in ruleritem?.directivesList" v-for="(item,index) in ruleritem?.directivesList"
@click="packtargetindex=index" :key="index"> @click="packtargetindex=index" :key="index">
<image class="detail-icon" <image class="detail-icon" :src="
:src="index === packtargetindex?serverUrl+item.immediateFileFocus:serverUrl+item.immediateFile" index === packtargetindex
mode="aspectFill"> ? (item.immediateFileFocus ? serverUrl + item.immediateFileFocus : noimageshow)
: (item.immediateFile ? serverUrl + item.immediateFile : noimageshow)
" mode="aspectFill">
</image> </image>
<view class=""> <view class="">
{{ splitString(item.directiveName)[0] }} {{ splitString(item.directiveName)[0] }}
@ -489,9 +508,11 @@
<view class="packtarget-heng"></view> <view class="packtarget-heng"></view>
<view class="packtarget-end"> <view class="packtarget-end">
<image class="end-icon" <image class="end-icon" :src="
:src="serverUrl+ruleritem?.directivesList[packtargetindex]?.immediateFile" ruleritem?.directivesList?.[packtargetindex]?.immediateFile
mode="aspectFill"> ? serverUrl + ruleritem.directivesList[packtargetindex].immediateFile
: noimageshow
" mode="aspectFill">
</image> </image>
<view class=""> <view class="">
<view class="packtarget-title"> <view class="packtarget-title">
@ -512,59 +533,15 @@
{{ ruleritem?.directivesList[packtargetindex]?.serviceContent }} {{ ruleritem?.directivesList[packtargetindex]?.serviceContent }}
</view> </view>
</view> </view>
<view class="target-edit" style="right: 150rpx;" @click.stop="editcardname"
v-show="editingmode">
修改
</view>
<view class="target-edit" @click.stop="edititems(ruleritem)" v-show="editingmode"> <view class="target-edit" @click.stop="edititems(ruleritem)" v-show="editingmode">
编辑 编辑
</view> </view>
</view> </view>
<!-- <view class="target-items">
<view class="target-gray">
{{ ruleritem.categoryName }}
</view>
<view class="target-shu">
|
</view>
<view class="target-gray">
{{ ruleritem.typeName }}
</view>
</view>
<view class="target-contain">
<view class="image-father">
<image class="target-img" :src="serverUrl + ruleritem.immediateFile" />
</view>
<view class="image-right">
<view class="right-title">
{{ ruleritem.directiveName }}
</view>
<view class="target-many">
<view class="target-strart">
{{ ruleritem.startTime }}
</view>
<view class="target-other">
<view class="target-shu">
|
</view>
<text class="target-blue">
{{ ruleritem.newtypename }}
</text>
<view class="target-shu">
|
</view>
<view class="">
{{ ruleritem.serviceDuration }}分钟
</view>
</view>
</view>
</view>
</view>
<view class="target-smalltext">
{{ ruleritem.serviceContent }}
</view>
<view class="target-edit" @click.stop="edititems(ruleritem)" v-show="editingmode">
编辑
</view> -->
</view> </view>
<view class="edit-open" v-show="editopen" @click.stop> <view class="edit-open" v-show="editopen" @click.stop>
<view class="edit-menu"> <view class="edit-menu">
@ -660,62 +637,7 @@
</view> </view>
</view> </view>
</view> </view>
<!-- 点击的弹出层 -->
<view v-show="isopen" class="popup-overlay" @click="isopen=false;flyNumber.index0=999;touchindex1=-1">
<view class="popup-overlay-content" style="height: 390rpx;" popup-overlay:class="getjiao"
v-if="timearr[showDetail[0]]?.children[showDetail[1]]?.izPackage==='N'"
:style="{ top: (2*openY - 350) + 'rpx',left: (2*openX - 780) + 'rpx',opacity: isopacity ? 1 : 0 }"
@click.stop>
<view class="popup-overlay-content-left">
<image class="popup-overlay-content-left-img"
:src="timearr[showDetail[0]]?.children[showDetail[1]]?.netImmediateFileFocus" />
</view>
<view class="popup-overlay-content-right">
<view class="time-font">
{{ timearr[showDetail[0]]?.children[showDetail[1]]?.startTime }} -
{{ timearr[showDetail[0]]?.children[showDetail[1]]?.endTime }}
</view>
<view class="time-text">
{{ timearr[showDetail[0]]?.children[showDetail[1]]?.directiveName }}
</view>
</view>
</view>
<view class="popup-overlay-content" :class="getjiao" v-else
:style="{ top: (2*openY - 350) + 'rpx',left: (2*openX - 780) + 'rpx',opacity: isopacity ? 1 : 0 }"
@click.stop>
<view class="specia-onshow">
<view class="specia-title">
{{ timearr[showDetail[0]]?.children[showDetail[1]]?.startTime }} -
{{ timearr[showDetail[0]]?.children[showDetail[1]]?.endTime }}
</view>
<view class="specia-cards" v-if="timearr[showDetail[0]]?.children[showDetail[1]]?.directivesList">
<view class="title-time-border-yellow"
style="font-size: 30rpx;overflow: hidden;width: 232rpx;height: 150rpx;"
v-for="(item1,index1) in timearr[showDetail[0]]?.children[showDetail[1]]?.directivesList"
:key="index1">
<view class="title-time" style="flex-direction: column;">
<image style="width: 60rpx;height: 60rpx;margin: 0 auto;margin-top: 10rpx"
:src="item1.netImmediateFile" />
<view class="title-time-time" style="font-size: 30rpx;">
{{item1.serviceDuration + "分钟"}}
</view>
<image class="title-time-button" style="width: 80rpx;height: 48rpx;"
src="/static/index/newruler/jiao.png" />
<view class="title-time-font" style="right: 10rpx;top: 5rpx;font-size: 23rpx;">
{{ item1.cycleType }}
</view>
</view>
<view class="title-time-font-rel">
{{splitString(item1.directiveName)[0]}}
</view>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="move-view" v-show="moveopen"></view> -->
<!-- 分享的弹出层 --> <!-- 分享的弹出层 -->
<view v-show="shareShow" class="popup-share" @click="shareShow=false"> <view v-show="shareShow" class="popup-share" @click="shareShow=false">
<view class="popup-share-content" :style="{ opacity: deletedownisopacity ? 1 : 0 }" @click.stop> <view class="popup-share-content" :style="{ opacity: deletedownisopacity ? 1 : 0 }" @click.stop>
@ -751,29 +673,59 @@
<view class="delete-button-father"> <view class="delete-button-father">
<view class="button-white" @click="isDelete=false">取消</view> <view class="button-white" @click="isDelete=false">取消</view>
<view class="button" @click="openDelete()">确定</view> <view class="button" @click="killruleclick">确定</view>
</view> </view>
<view class="title">确定要删除指令吗</view> <view class="title">确定要删除指令吗</view>
<view class="title-time-border-yellow" <view class="card-box">
style="font-size: 30rpx;overflow: hidden;width: 240rpx;height: 170rpx;"> <view class="title-time-blue-card">
<image class="blue-img" src="/static/index/bluetarget.png" />
</view>
<view class="card-bao" v-if="postitem.izPackage==`Y`">
</view>
<view class="title-time-border-hisOk">
<view class="title-time">
<view class="title-time-font-rel">
{{ splitString(postitem.directiveName)[0]}}
</view>
<view v-if="splitString(postitem.directiveName)[1]" class="title-time-font-tags">
({{ splitString(postitem.directiveName)[1]}})
</view>
<view class="card-time">
<view class="title-time" style="flex-direction: column;"> <view class="weight-time">
<image style="width: 60rpx;height: 60rpx;margin: 0 auto;margin-top: 10rpx" {{ postitem.startTime }}
:src="timearr[saveEditIndex.index0]?.children[saveEditIndex.index1].netImmediateFile?timearr[saveEditIndex.index0].children[saveEditIndex.index1].netImmediateFile:`/static/logo.png`" /> <text style="margin: 0 3rpx;">
<view class="title-time-time" style="font-size: 30rpx;"> -
{{timearr[saveEditIndex.index0].children[saveEditIndex.index1].startTime + `-` + timearr[saveEditIndex.index0].children[saveEditIndex.index1].endTime}} </text>
</view> {{ postitem.endTime }}
<image class="title-time-button" style="width: 80rpx;height: 48rpx;" </view>
v-if="timearr[saveEditIndex.index0]?.children[saveEditIndex.index1].cycleTypeId!=1" </view>
src="/static/index/newruler/jiao.png" />
<view class="title-time-font" style="right: 10rpx;top: 5rpx;font-size: 23rpx;"
v-if="timearr[saveEditIndex.index0].children[saveEditIndex.index1].cycleTypeId!=1">
{{ timearr[saveEditIndex.index0]?.children[saveEditIndex.index1].cycleType }}
</view> </view>
</view> </view>
<view class="title-time-font-rel"> </view>
{{splitString(timearr[saveEditIndex.index0]?.children[saveEditIndex.index1].directiveName)[0]}} </view>
</view>
<view :class="['neuro-wrapper', deletedonghua ? 'is-active' : '']" v-if="killisopen">
<!-- 遮罩层点击触发关闭 -->
<view class="neuro-mask" @click="killisopen=false"></view>
<!-- 拟态框阻止冒泡点击 -->
<view class="neuro-box" @click.stop style="height: 450rpx;">
<view class="delete-button-father">
<view class="button-white" @click="killisopen=false">取消</view>
<view class="button" @click="killjishi">确定</view>
</view>
<view class="title">确定要删除指令吗</view>
<view class="title-time-border-yellow">
<image class="kill-icon"
:src="killthisid.immediateFile? (serverUrl + killthisid.immediateFile ) : noimageshow"
mode="aspectFill"></image>
<view class="kill-text">
{{ killthisid.directiveName }}
</view> </view>
</view> </view>
@ -784,7 +736,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch } from 'vue'; import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, onUnmounted } from 'vue';
import { onShow, onHide } from '@dcloudio/uni-app'; import { onShow, onHide } from '@dcloudio/uni-app';
import { getNclist, addBatch, addDirective, addInstant, deleteDirective, editDirective } from "./api.js"; import { getNclist, addBatch, addDirective, addInstant, deleteDirective, editDirective } from "./api.js";
import { myArray } from './yaoshandiao.js'; import { myArray } from './yaoshandiao.js';
@ -811,16 +763,47 @@
required: true required: true
}, },
}); });
const canmovechange = ref(true)
watch(() => props.canmove, (newVal, oldVal) => { watch(() => props.canmove, (newVal, oldVal) => {
if (oldVal === false && newVal === true) { if (oldVal === false && newVal === true) {
// console.log("aaaaa", inArea(props.sendxy[0],props.sendxy[1])) isTuoing.value = false;
if (inArea(props.sendxy[0], props.sendxy[1])) { canmovechange.value = true;
if (props.isblue == 1) {
addinstantcommand() addinstantcommand()
} else if (props.isblue == 2) {
// console.log("", postitem.value,props.sendxy)
// console.log("",props.sendxy[0])
getNew()
}
else if (props.isblue == 3) {
// console.log("", postitem.value)
isDelete.value = true;
deletedonghua.value = false;
setTimeout(() => deletedonghua.value = true, 50)
} }
} }
}); });
const killruleclick = () => {
isDelete.value = false;
deleteDirective({ id: postitem.value.id }).then((res) => {
if (res.success) {
geteverything()
if (saveEditIndex.value.index0 != -1) {
setTimeout(() => {
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
}, 300)
}
}
})
}
const noimageshow = `/static/logo.png`;
const clickrighttoclean = () => { const clickrighttoclean = () => {
// console.log("") // console.log("")
openmore.value = false; openmore.value = false;
@ -1147,26 +1130,23 @@
} }
// //
const getNew = () => { const getNew = () => {
if (flyNumber.value.index0 === saveEditIndex.value.index0 && flyNumber.value.index1 === saveEditIndex.value.index1) { let item = timearr.value[Number(props.sendxy[0])]?.children[Number(Number(props.sendxy[1]))]
isMove.value = false;
flyNumber.value.index0 = -1; if (item.id) {
flyNumber.value.index1 = -1; // deleteDirective(postitem.value.id).then((res : any) => {
return // doChangeNew()
} // })
if (timearr.value[saveEditIndex.value.index0]?.children[saveEditIndex.value.index1].id) {
deleteDirective(timearr.value[saveEditIndex.value.index0]?.children[saveEditIndex.value.index1]).then((res : any) => {
doChangeNew()
})
} else { } else {
doChangeNew() doChangeNew()
} }
} }
const doChangeNew = () => { const doChangeNew = () => {
let object = JSON.parse(JSON.stringify(timearr.value[flyNumber.value.index0]?.children[flyNumber.value.index1])) let object = postitem.value;
indexsave.value = [saveEditIndex.value.index0, saveEditIndex.value.index1] indexsave.value = [Number(props.sendxy[0]), Number(props.sendxy[1])]
// tagName // tagName
let tagName = timearr.value[flyNumber.value.index0]?.children[flyNumber.value.index1].tagName let tagName = postitem.value.tagName
timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { directiveName: '', tagName: tagName } timearr.value[Number(postitem.value.positioning)].children[Number(postitem.value.positioningLong)] = { directiveName: '', tagName: tagName }
// //
let newtagName = timearr.value[indexsave.value[0]].children[indexsave.value[1]].tagName let newtagName = timearr.value[indexsave.value[0]].children[indexsave.value[1]].tagName
timearr.value[indexsave.value[0]].children[indexsave.value[1]] = object timearr.value[indexsave.value[0]].children[indexsave.value[1]] = object
@ -1217,25 +1197,34 @@
// //
const pad2 = (n) => String(n).padStart(2, '0'); const pad2 = (n) => String(n).padStart(2, '0');
let data = {
index0: indexsave.value[0],
index1: indexsave.value[1]
}
whereEvent(data);
// console.log("start",`${String(newHour)}:${pad2(newStartMin)}`,`${String(newEndHour)}:${pad2(newEndMin)}`,indexsave.value)
timearr.value[indexsave.value[0]].children[indexsave.value[1]].startTime = timearr.value[indexsave.value[0]].children[indexsave.value[1]].startTime =
`${String(newHour)}:${pad2(newStartMin)}`; `${String(newHour)}:${pad2(newStartMin)}`;
timearr.value[indexsave.value[0]].children[indexsave.value[1]].endTime = timearr.value[indexsave.value[0]].children[indexsave.value[1]].endTime =
`${String(newEndHour)}:${pad2(newEndMin)}`; `${String(newEndHour)}:${pad2(newEndMin)}`;
flyNumber.value.index1 = -1;
isMove.value = false; let infoValue = object
let data = { infoValue.positioning = indexsave.value[0];
index0: saveEditIndex.value.index0, infoValue.positioningLong = indexsave.value[1];
index1: saveEditIndex.value.index1 infoValue.startTime = timearr.value[indexsave.value[0]].children[indexsave.value[1]].startTime;
} infoValue.endTime = timearr.value[indexsave.value[0]].children[indexsave.value[1]].endTime;
whereEvent(data);
let infoValue = timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1]
infoValue.positioning = saveEditIndex.value.index0;
infoValue.positioningLong = saveEditIndex.value.index1;
editDirective(infoValue).then((res : any) => { editDirective(infoValue).then((res : any) => {
if (res.success) { if (res.success) {
geteverything() geteverything()
} }
setTimeout(() => {
rulerTouchClick(timearr.value[indexsave.value[0]].children[indexsave.value[1]], indexsave.value[0], indexsave.value[1])
// whereEvent(indexsave.value);
}, 200)
}) })
} }
// //
@ -1393,6 +1382,15 @@
// //
const getClass = (item, index0, index1) => { const getClass = (item, index0, index1) => {
if (item.startTime) { if (item.startTime) {
if (props.targetrule[0] == index0 && props.targetrule[1] == index1 && isTuoing.value) {
if (timearr.value[index0]?.children[index1]?.id) {
return `title-time-border-error`
}
} else if (Number(postitem.value.positioning) == index0 && Number(postitem.value.positioningLong) == index1 && isTuoing.value) {
return `title-time-border-own`
}
return 'title-time-border-hisOk'; return 'title-time-border-hisOk';
} }
return 'title-time-border'; return 'title-time-border';
@ -1565,6 +1563,12 @@
// //
const ruleritem = ref({}) const ruleritem = ref({})
const editcardname = () => {
ruleritem.value = {
directiveName: ""
}
}
const packtargetindex = ref(0) const packtargetindex = ref(0)
const rulerTouchClick = (item : any, index0 : number, index1 : number) => { const rulerTouchClick = (item : any, index0 : number, index1 : number) => {
// isDelete.value = false; // isDelete.value = false;
@ -1673,10 +1677,21 @@
}) })
} }
const killjishi = (id : string) => {
console.log("id有吗", id) const killisopen = ref(false)
deleteDirective({ id: id }).then((res) => { const killthisid = ref("")
console.log("返回啥了", res)
const killinstantopen = (item) => {
killthisid.value = item;
killisopen.value = true;
deletedonghua.value = true;
setTimeout(() => deletedonghua.value = true, 50)
}
const killjishi = () => {
killisopen.value = false;
deleteshake.value = false;
// console.log("id", id)
deleteDirective({ id: killthisid.value.id }).then((res) => {
if (res.success) { if (res.success) {
geteverything() geteverything()
} }
@ -2014,10 +2029,10 @@
const emotionTagList = ref([]); const emotionTagList = ref([]);
const bodyTagList = ref([]); const bodyTagList = ref([]);
const geteverything = () => { const geteverything = () => {
console.log("啥玩意啊", uni.getStorageSync('elderId')) // console.log("", uni.getStorageSync('elderId'))
if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) { if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) {
getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => { getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => {
console.log("即时指令", res.result.serviceList) // console.log("", res.result.serviceList)
timearr.value = Array.from({ length: 24 }, (_, hour) => ({ timearr.value = Array.from({ length: 24 }, (_, hour) => ({
positioning: hour.toString(), positioning: hour.toString(),
children: minuteArr.map(time => ({ children: minuteArr.map(time => ({
@ -2207,13 +2222,9 @@
const edittype = ref(0) const edittype = ref(0)
const clickedit = (index : number) => { const clickedit = (index : number) => {
edittype.value = index; edittype.value = index;
// if (index) {
// listsave.value = emotionTagListLooksave.value
// } else {
// listsave.value = bodyTagListLooksave.value
// }
} }
let timerId : ReturnType<typeof setTimeout> | null = null
const showtomuch = ref(false)
const clickcard = (index : number) => { const clickcard = (index : number) => {
let data = menutype.value ? emotionTagListLooksave.value : bodyTagListLooksave.value let data = menutype.value ? emotionTagListLooksave.value : bodyTagListLooksave.value
if (data[index].izSelected === 'Y') { if (data[index].izSelected === 'Y') {
@ -2221,11 +2232,28 @@
} else { } else {
if (data.filter(item => item.izSelected === 'Y').length !== 2) { if (data.filter(item => item.izSelected === 'Y').length !== 2) {
data[index].izSelected = 'Y' data[index].izSelected = 'Y'
} else {
showtomuch.value = true;
//
if (timerId !== null) {
clearTimeout(timerId)
}
// 2
timerId = setTimeout(() => {
showtomuch.value = false
timerId = null
}, 2000)
} }
} }
listsave.value = data listsave.value = data
} }
onUnmounted(() => {
if (timerId !== null) {
clearTimeout(timerId)
timerId = null
}
})
const openserver = (index : number) => { const openserver = (index : number) => {
servertype.value = index servertype.value = index
} }
@ -2301,14 +2329,14 @@
const istargetblue = ref(false); const istargetblue = ref(false);
function inArea(x, y) { // function inArea(x, y) {
return ( // return (
x >= 790 && // x >= 790 &&
x <= 1062 && // x <= 1062 &&
y >= 147 && // y >= 147 &&
y <= 255 // y <= 255
) // )
} // }
const addontime = () => { const addontime = () => {
// scrollLeft.value = 1; // scrollLeft.value = 1;
@ -2392,7 +2420,7 @@
longPressTimer.value = setTimeout(() => { longPressTimer.value = setTimeout(() => {
if (isScrolling.value) return if (isScrolling.value) return
if (item.directiveName) { if (item.directiveName) {
let reldata = [] let reldata = []
const query = uni.createSelectorQuery() const query = uni.createSelectorQuery()
@ -2406,6 +2434,7 @@
} }
}) })
if (killbaddata.value) return if (killbaddata.value) return
canmovechange.value = false;
isTuoing.value = true; isTuoing.value = true;
emit('handsend', item) emit('handsend', item)
emit('rulepush', reldata) emit('rulepush', reldata)
@ -2414,33 +2443,35 @@
}) })
.exec() .exec()
} }
}, 500) }, 800)
} }
const handleTouchStart = (item : any, e : any) => { const handleTouchStart = (item : any, e : any) => {
// //
console.log("长按了", item)
if (!editingmode.value) return if (!editingmode.value) return
// thirdmenuIndex.value = index // thirdmenuIndex.value = index
shakyTable.value = false shakyTable.value = false
saveX.value = Math.floor(e.touches[0].pageX); saveX.value = Math.floor(e.touches[0].pageX);
saveY.value = Math.floor(e.touches[0].pageY); saveY.value = Math.floor(e.touches[0].pageY);
killbaddata.value = false
longPressTimer.value = setTimeout(() => { longPressTimer.value = setTimeout(() => {
console.log("长按了", item)
if (isScrolling.value) return if (isScrolling.value) return
// console.log("/////",killbaddata.value) if (killbaddata.value) return
// if (killbaddata.value) return canmovechange.value = false;
isTuoing.value = true; isTuoing.value = true;
emit('handsend', item) emit('handsend', item)
postitem.value = item postitem.value = item
}, 200) }, 800)
} }
const isScrolling = ref(false) const isScrolling = ref(false)
// //
let scrollTimeout = null let scrollTimeout = null
function handleScroll(e) { function handleScroll(e) {
killbaddata.value = true
isScrolling.value = true isScrolling.value = true
// //
if (scrollTimeout) clearTimeout(scrollTimeout) if (scrollTimeout) clearTimeout(scrollTimeout)
@ -2477,6 +2508,7 @@
const lastClick = ref(0) const lastClick = ref(0)
let singleTimer = null let singleTimer = null
const clickaddnew = (item, index) => { const clickaddnew = (item, index) => {
killbaddata.value = true
thirdmenuIndex.value = index thirdmenuIndex.value = index
const now = Date.now() const now = Date.now()
if (now - lastClick.value < dblDelay) { if (now - lastClick.value < dblDelay) {
@ -2502,6 +2534,9 @@
lastClick.value = now lastClick.value = now
} }
const newaddruler = (item) => { const newaddruler = (item) => {
let cardvalue = JSON.parse(JSON.stringify(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1]))
let allobject = item let allobject = item
// console.log("") // console.log("")
let cycleType = ""; let cycleType = "";
@ -2592,16 +2627,30 @@
izPackage: servertype.value ? `Y` : `N`, izPackage: servertype.value ? `Y` : `N`,
cycleTypeId: 1, cycleTypeId: 1,
} }
addDirective(postdata).then((res) => { if (cardvalue.directiveId) {
// console.log("kankan", postdata, res) postdata.id = cardvalue.id,
if (res.success) { editDirective(postdata).then((res) => {
geteverything() if (res.success) {
setTimeout(() => { // console.log("")
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1) geteverything()
}, 200) setTimeout(() => {
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
}, 200)
}
})
} else {
addDirective(postdata).then((res) => {
// console.log("kankan", postdata, res)
if (res.success) {
geteverything()
setTimeout(() => {
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
}, 200)
}
})
}
}
})
} }
onBeforeUnmount(() => { onBeforeUnmount(() => {
if (singleTimer) clearTimeout(singleTimer) if (singleTimer) clearTimeout(singleTimer)

View File

@ -40,7 +40,9 @@
</view> </view>
</view> </view>
</view> </view>
</view>
<view class="delete-view" :style="isblue==`3`?{backgroundColor:`#0080FC`}:{}" v-if="!startmoveit&&whoisit">
<image class="delete-img" src="/static/index/trash.png" />
</view> </view>
<!-- 左侧菜单 --> <!-- 左侧菜单 -->
<leftcontent :list="arrlist" @navurl="navurl" :userInfo="userInfo"></leftcontent> <leftcontent :list="arrlist" @navurl="navurl" :userInfo="userInfo"></leftcontent>
@ -52,8 +54,8 @@
<bignurse :isshow="menuIndex==0" <bignurse :isshow="menuIndex==0"
v-if="swipedex==0&&specialPage==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" /> v-if="swipedex==0&&specialPage==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
<!-- 户嘱页 --> <!-- 户嘱页 -->
<newnurse :isshow="menuIndex==1" v-if="swipedex==1" :canmove="startmoveit" :sendxy="sendxy" :isblue='isblue' :targetrule="targetrule" <newnurse :isshow="menuIndex==1" v-if="swipedex==1" :canmove="startmoveit" :sendxy="targetrule" :isblue='isblue'
@handsend="handsend" @rulepush="rulepush" /> :targetrule="targetrule" @handsend="handsend" @rulepush="rulepush" />
<!-- 医嘱 --> <!-- 医嘱 -->
<doctorask v-if="swipedex==2&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" /> <doctorask v-if="swipedex==2&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
<logistics :isshow="menuIndex==3" <logistics :isshow="menuIndex==3"
@ -110,12 +112,12 @@
getNcPackagelist().then((res : any) => { getNcPackagelist().then((res : any) => {
// //
console.log("缓存指令包", res) // console.log("", res)
uni.setStorageSync("Packagelist", res.result) uni.setStorageSync("Packagelist", res.result)
}) })
getPermissionList({ employessId: uni.getStorageSync('userInfo').employessId }).then(res => { getPermissionList({ employessId: uni.getStorageSync('userInfo').employessId }).then(res => {
listarr.value = res.result; listarr.value = res.result;
console.log("这个是啥", listarr.value) // console.log("", listarr.value)
}) })
}) })
const gospecial = (index : number) => { const gospecial = (index : number) => {
@ -353,9 +355,17 @@
const nx = Number(wh[0]) || 0; const nx = Number(wh[0]) || 0;
const ny = Number(wh[1]) || 0; const ny = Number(wh[1]) || 0;
// console.log("----", nx, ny) // console.log("----", nx, ny)
boxStyle.value = { if (whoisit.value) {
transform: `translate3d(${nx - 100}px, ${ny - 70}px, 0)` boxStyle.value = {
}; transform: `translate3d(${nx - 70}px, ${ny - 60}px, 0)`
};
} else {
boxStyle.value = {
transform: `translate3d(${nx - 100}px, ${ny - 70}px, 0)`
};
}
} }
const movelook = ref({ const movelook = ref({
url: "", url: "",
@ -371,6 +381,7 @@
}) })
function handsend(look : any) { function handsend(look : any) {
isblue.value = 0;
if (look.levle) { if (look.levle) {
whoisit.value = 0; whoisit.value = 0;
movelook.value.url = uni.getStorageSync('imagebase') + look.immediateFileFocus; movelook.value.url = uni.getStorageSync('imagebase') + look.immediateFileFocus;
@ -385,16 +396,8 @@
simpleobj.value.endTime = look.endTime; simpleobj.value.endTime = look.endTime;
simpleobj.value.directiveName = look.directiveName; simpleobj.value.directiveName = look.directiveName;
simpleobj.value.izPackage = look.izPackage; simpleobj.value.izPackage = look.izPackage;
startmoveit.value = false startmoveit.value = false
// console.log("",look)
} }
// movelook.value.url = uni.getStorageSync('imagebase') + look.immediateFileFocus;
// if (!movelook.value.url) {
// movelook.value.url = `/static/index/sharelogo.png`
// }
// movelook.value.title = look.title;
// startmoveit.value = false
} }
// //
@ -432,12 +435,12 @@
handmove([a, b]) handmove([a, b])
} }
} }
const rules = ref([]) const rules = ref([])
const rulepush = (array : any) => { const rulepush = (array : any) => {
console.log("array", array) targetrule.value = [-1, -1]
rules.value = array rules.value = array
} }
const targetrule = ref([-1,-1]) const targetrule = ref([-1, -1])
function inArea(x, y) { function inArea(x, y) {
if (!whoisit.value) { if (!whoisit.value) {
if (x >= 790 && if (x >= 790 &&
@ -448,50 +451,43 @@
} else { } else {
return 0 return 0
} }
}else{ } else {
for (let i = rules.value.length - 1; i >= 0; i--) { // console.log("000",x)
const it = rules.value[i] if(x>1000){
if (x >= it.left && x <= it.right && y >= it.top && y <= it.bottom) { return 3
const raw0 = it.dataset?.index0
const raw1 = it.dataset?.index1
const n0 = raw0 === undefined ? NaN : Number(raw0)
const n1 = raw1 === undefined ? NaN : Number(raw1)
if (!isNaN(n0) && !isNaN(n1)) {
if(n0 != targetrule.value[0] || n1 != targetrule.value[1]){
targetrule.value = [0,1]
}
return 2
}
return 0
}
} }
return 0
for (let i = rules.value.length - 1; i >= 0; i--) {
const it = rules.value[i]
if (x >= it.left && x <= it.right && y >= it.top && y <= it.bottom) {
const raw0 = it.dataset?.index0
const raw1 = it.dataset?.index1
const n0 = raw0 === undefined ? NaN : Number(raw0)
const n1 = raw1 === undefined ? NaN : Number(raw1)
if (!isNaN(n0) && !isNaN(n1)) {
if (n0 != targetrule.value[0] || n1 != targetrule.value[1]) {
targetrule.value = [n0, n1]
}
return 2
}
}
}
// [-1, -1] 0
if (targetrule.value[0] !== -1 || targetrule.value[1] !== -1) {
targetrule.value = [-1, -1]
}
return 2
} }
} }
// function inArea(x: number, y: number): [number, number] {
// for (let i = rules.value.length - 1; i >= 0; i--) {
// const it = rules.value[i]
// if (x >= it.left && x <= it.right && y >= it.top && y <= it.bottom) {
// const raw0 = it.dataset?.index0
// const raw1 = it.dataset?.index1
// const n0 = raw0 === undefined ? NaN : Number(raw0)
// const n1 = raw1 === undefined ? NaN : Number(raw1)
// if (!isNaN(n0) && !isNaN(n1)) return [n0, n1]
// return [-1, -1]
// }
// }
// return [-1, -1]
// }
const getxy = throttle(getxyrel, 40); const getxy = throttle(getxyrel, 40);
const cleanall = (event) => { const cleanall = (event) => {
// console.log("zzzz",event) // const touch = event.changedTouches[0];
const touch = event.changedTouches[0]; // const a = touch.clientX.toFixed(2);
const a = touch.clientX.toFixed(2); // const b = touch.clientY.toFixed(2);
const b = touch.clientY.toFixed(2); // sendxy.value = [a, b]
sendxy.value = [a, b]
handmove([-200, -200]) handmove([-200, -200])
startmoveit.value = true; startmoveit.value = true;
isblue.value = 0 // isblue.value = 0
} }
// bigArray // bigArray
function splitString(str) { function splitString(str) {
@ -687,4 +683,22 @@
} }
} }
.delete-view{
position: fixed;
right: -950rpx;
top: 3%;
width: 1100rpx;
height: 1100rpx;
border-radius: 50%;
background-color: rgba(228, 230, 236, 0.8);
z-index: 200;
.delete-img{
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 50rpx;
width: 60rpx;
height: 65rpx;
}
}
</style> </style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
static/index/newtarget.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/index/trash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long