This commit is contained in:
wangweidong 2026-01-26 15:44:35 +08:00
commit fdc9c101f5
57 changed files with 1152 additions and 363 deletions

View File

@ -379,7 +379,7 @@
</view> </view>
<view class="tg" style="border-right: 1px solid rgba(238, 238, 238, 1);"> <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)"> <view v-for="(v,i) in emotionTagList" :key='i' @click="clicktag(v,i)">
<image :src="v.netPic" mode="aspectFill"></image> <image :src="uni.getStorageSync('imagebase') + v.pic" mode="aspectFill"></image>
<text>{{v.tagName}}</text> <text>{{v.tagName}}</text>
</view> </view>
<image src="/static/index/card/zanw.png" mode="aspectFill" <image src="/static/index/card/zanw.png" mode="aspectFill"
@ -394,7 +394,7 @@
</view> </view>
<view class="tg"> <view class="tg">
<view v-for="(v,i) in bodyTagList" :key='i' @click="clicktag(v,i+2)"> <view v-for="(v,i) in bodyTagList" :key='i' @click="clicktag(v,i+2)">
<image :src="v.netPic" mode="aspectFill"></image> <image :src="uni.getStorageSync('imagebase') + v.pic" mode="aspectFill"></image>
<text>{{v.tagName}}</text> <text>{{v.tagName}}</text>
</view> </view>
<image src="/static/index/card/zanw.png" mode="aspectFill" v-if="bodyTagList.length==0" <image src="/static/index/card/zanw.png" mode="aspectFill" v-if="bodyTagList.length==0"
@ -1251,6 +1251,7 @@
bodyTagList.value = []; bodyTagList.value = [];
zzbqshow.value = true; zzbqshow.value = true;
getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => { getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => {
console.log("东西呢",res)
res.result.emotionTagList.forEach(item=>{ res.result.emotionTagList.forEach(item=>{
if(item.izSelected == 'Y'){ if(item.izSelected == 'Y'){
emotionTagList.value.push(item) emotionTagList.value.push(item)
@ -1512,7 +1513,6 @@
margin-top: 0.5vw; margin-top: 0.5vw;
width: 9vw; width: 9vw;
height: 9vw; height: 9vw;
border: 1rpx solid #DCDCDC; border: 1rpx solid #DCDCDC;
border-radius: 50%; border-radius: 50%;
} }

View File

@ -46,13 +46,13 @@ export const getNcPackagelist = (nuId,elderId) => {
} }
// 新增服务指令 // 新增服务指令
export const addDirective = (params) => { // export const addDirective = (params) => {
return request({ // return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addDirective`, // url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addDirective`,
method: 'post', // method: 'post',
data: params, // data: params,
}) // })
} // }
// 新增即时指令 // 新增即时指令
export const addInstant = (params) => { export const addInstant = (params) => {
@ -114,4 +114,13 @@ export const getDirectiveOrders = (date) => {
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/getDirectiveOrders?nuId=${uni.getStorageSync('nuId')}&elderId=${uni.getStorageSync('elderId')}&queryDate=${date}`, url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/getDirectiveOrders?nuId=${uni.getStorageSync('nuId')}&elderId=${uni.getStorageSync('elderId')}&queryDate=${date}`,
method: 'get', method: 'get',
}) })
}
// 新增服务指令
export const addDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/addDirective`,
method: 'post',
data: params,
})
} }

View File

@ -595,7 +595,7 @@
// //
const scrollTop = ref(0) const scrollTop = ref(0)
// //
const downList = ref<any>() // const downList = ref<any>()
const isop = ref(false); const isop = ref(false);
const bigArray = ref([]); const bigArray = ref([]);
const isopen = ref(false) const isopen = ref(false)
@ -926,24 +926,6 @@
element.rightshow = `${element.optTypeName}/${element.optNames}` element.rightshow = `${element.optTypeName}/${element.optNames}`
} }
} }
// switch (element.executeStatus) {
// case 'hisUnExe':
// element.rightshow = ``
// case 'hisTimeOut':
// element.rightshow = `${element.optTypeName}/${element.optNames}`
// case 'hisOk':
// element.rightshow = `${element.optTypeName}/${element.optNames}`
// case 'hisTimeOut':
// element.rightshow = `${element.optTypeName}/${element.optNames}`
// case 'hisTimeOut':
// element.rightshow = `${element.optTypeName}/${element.optNames}`
// default:
// return 'card-time';
// }
if (element.cycleTypeId != 3) { if (element.cycleTypeId != 3) {
timearr.value[element.positioning].children[element.positioningLong] = element; timearr.value[element.positioning].children[element.positioningLong] = element;
} }
@ -972,7 +954,7 @@
if (res.result) { if (res.result) {
bigArray.value = res.result; bigArray.value = res.result;
} }
downList.value = bigArray.value[0].children // downList.value = bigArray.value[0].children
upmenuIndex.value = -1; upmenuIndex.value = -1;
downdonghua.value = -1; downdonghua.value = -1;
setTimeout(() => { setTimeout(() => {

View File

@ -636,6 +636,36 @@
flex-direction: column; flex-direction: column;
position: relative; position: relative;
} }
.title-time-border-big {
transform: scale(1.3);
transform-origin: top;
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
z-index: 999;
display: flex;
justify-content: center;
align-items: center;
height: 245rpx;
width: 100%;
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
flex-direction: column;
position: relative;
}
.title-time-border-big-top {
transform: scale(1.3);
transform-origin: top;
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
z-index: 999;
display: flex;
justify-content: center;
align-items: center;
height: 245rpx;
width: 100%;
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
flex-direction: column;
position: relative;
}
} }
.right-container { .right-container {
@ -644,6 +674,8 @@
transition: opacity 1s ease; transition: opacity 1s ease;
position: relative; position: relative;
margin-left: -50rpx; margin-left: -50rpx;
/* background-color: blue; */
.joystick { .joystick {
position: absolute; position: absolute;
@ -1285,52 +1317,20 @@
} }
.title-time-border { .title-time-border {
margin-top: 4rpx; /* margin-top: 4rpx;
margin-left: 4rpx; margin-left: 4rpx; */
// border: 1rpx solid black;
width: calc(100% - 8rpx); width: calc(100% - 15rpx);
height: calc(100% - 8rpx); height: calc(100% - 15rpx);
border-radius: 20rpx; border-radius: 20rpx;
display: flex; display: flex;
// justify-content: center;
align-items: center; align-items: center;
flex-direction: column; flex-direction: column;
} }
.title-time-border-big {
transform: scale(1.3);
transform-origin: top;
/* 将页面内容放大1.2倍 */
border-top: 0rpx solid #fff;
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
z-index: 999;
display: flex;
justify-content: center;
align-items: center;
height: 200rpx;
width: calc(100%);
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
flex-direction: column;
position: relative;
}
.title-time-border-big-top {
transform: scale(1.3);
transform-origin: top;
/* 将页面内容放大1.2倍 */
border-top: 0rpx solid #fff;
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
z-index: 999;
display: flex;
justify-content: center;
align-items: center;
height: 200rpx;
width: calc(100%);
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
flex-direction: column;
position: relative;
}
.title-time-border-yellow { .title-time-border-yellow {
margin: 10rpx; margin: 10rpx;
@ -1485,7 +1485,7 @@
height: 1225rpx; height: 1225rpx;
margin-top: 0rpx; margin-top: 0rpx;
overflow: hidden; overflow: hidden;
z-index: 999; z-index: 9;
} }
@ -1505,7 +1505,7 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
text-align: center; text-align: center;
z-index: 10; z-index: 9;
.boom-text { .boom-text {
width: 45rpx; width: 45rpx;
@ -1517,7 +1517,7 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
z-index: 1; /* z-index: 1; */
background-color: #eff0f4; background-color: #eff0f4;
} }
} }
@ -2046,6 +2046,7 @@
background-color: #fff; background-color: #fff;
border: 2rpx solid rgba(0, 137, 254, 0.29); border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 35rpx; border-radius: 35rpx;
z-index: 1;
.setting-right { .setting-right {
position: absolute; position: absolute;
@ -2090,41 +2091,45 @@
font-weight: 800; font-weight: 800;
color: #d5d5d5; color: #d5d5d5;
} }
.check-box-target { .check-box-target {
margin-left: 52rpx; margin-left: 52rpx;
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
border: 2rpx solid #0080FC; border: 2rpx solid #0080FC;
border-radius: 12rpx; border-radius: 12rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 15rpx; font-size: 15rpx;
font-weight: 800; font-weight: 800;
color: #0080FC; color: #0080FC;
} }
.check-img{
.check-img {
width: 50rpx; width: 50rpx;
height: 50rpx; height: 50rpx;
margin: 0 22rpx; margin: 0 22rpx;
} }
.check-text{
.check-text-view {
width: 400rpx; width: 400rpx;
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
/* justify-content: center; */ justify-content: center;
.check-weight{
.check-weight {
font-weight: 800; font-weight: 800;
font-size: 29rpx; font-size: 29rpx;
} }
.check-text{
.check-text {
font-size: 26rpx; font-size: 26rpx;
color: #666666; color: #666666;
} }
/* background-color: red; */
} }
} }
} }
@ -2361,4 +2366,254 @@
top: 45%; top: 45%;
left: 50%; left: 50%;
transform: translate(-45%, -50%); transform: translate(-45%, -50%);
}
.right-instant {
background-color: #fff;
width: 100%;
height: 240rpx;
border-radius: 35rpx;
position: relative;
margin-top: 18rpx;
.right-instant-title {
width: 100%;
height: 80rpx;
display: flex;
align-items: center;
position: relative;
.right-setting {
position: absolute;
right: 23rpx;
top: 20rpx;
width: 90rpx;
height: 46rpx;
background-color: #F2F3F8;
color: #555555;
font-size: 27rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10rpx;
border: 1rpx solid #E5E5E5;
}
.right-setting-target {
position: absolute;
right: 23rpx;
top: 20rpx;
width: 90rpx;
height: 46rpx;
background-color: #F2F3F8;
color: #0089FE;
font-size: 27rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10rpx;
border: 1rpx solid #0089FE;
}
}
.right-instant-items {
width: 100%;
height: 160rpx;
position: relative;
}
}
.right-tree {
background-color: #fff;
width: 100%;
height: 650rpx;
border-radius: 35rpx;
position: relative;
margin-top: 18rpx;
padding-top: 30rpx;
.right-servers {
width: 100%;
display: flex;
position: relative;
.explain-text {
position: absolute;
right: 4%;
top: 55rpx;
width: 93%;
z-index: 1;
height: 90rpx;
background-color: #fff;
color: #999;
display: flex;
justify-content: center;
align-items: center;
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
.triangle {
position: absolute;
top: -8.34rpx;
right: 22rpx;
width: 0;
height: 0;
border-left: 14.44rpx solid transparent;
border-right: 14.44rpx solid transparent;
border-bottom: 8.34rpx solid rgba(0, 137, 254, 0.29);
.triangle-small {
position: absolute;
top: 1.6rpx;
right: 50%;
transform: translateX(50%);
width: 0;
height: 0;
border-left: 14.44rpx solid transparent;
border-right: 14.44rpx solid transparent;
border-bottom: 8.34rpx solid #fff;
}
}
}
.explain-icon {
position: absolute;
right: 40rpx;
top: 5rpx;
width: 35rpx;
height: 35rpx;
}
.servers-heng {
position: absolute;
bottom: -10rpx;
left: 96rpx;
width: 27rpx;
height: 9.5rpx;
border-radius: 5rpx;
background-color: #0080FC;
transition: left 0.3s ease;
}
.server {
font-size: 35rpx;
margin-left: 40rpx;
}
.servertarget {
font-size: 35rpx;
margin-left: 40rpx;
font-weight: 800;
}
}
}
.three-items {
margin-top: 20rpx;
width: 90%;
margin-left: 7%;
height: 510rpx;
display: flex;
/* background-color: #fff; */
/* 禁止元素拖动 */
.tree-item {
width: 33.33%;
height: 100%;
.tree-card {
width: 100%;
height: 20%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
/* 禁止元素拖动 */
.card-icon {
width: 50rpx;
height: 50rpx;
}
.card-text {
margin-top: -10rpx;
color: #818181;
font-size: 26rpx;
}
}
}
}
.right-finally {
background-color: #fff;
width: 100%;
height: 115rpx;
border-radius: 35rpx;
position: relative;
margin-top: 18rpx;
display: flex;
align-items: center;
.finally-older {
margin-left: 28rpx;
width: 4.3vw;
height: 4.3vw;
border: 1rpx solid #DCDCDC;
border-radius: 50%;
}
.fin-button {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
margin-left: 50rpx;
position: relative;
.button-imge {
width: 45rpx;
height: 45rpx;
margin-bottom: 1rpx;
}
.button-text {
font-size: 26rpx;
}
}
.blue-right {
position: absolute;
right: 20rpx;
top: 50%;
transform: translateY(-50%);
width: 200rpx;
height: 70%;
background-color: #0089FE;
border-radius: 20rpx;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
font-size: 35rpx;
}
}
.move-view {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
/* backdrop-filter: blur(1rpx); */
/* background-color: rgba(236, 237, 241, 0.4); */
/* 添加毛玻璃效果 */
z-index: 10;
} }

View File

@ -22,8 +22,8 @@
</view> </view>
<view class="super-card-container"> <view class="super-card-container">
<scroll-view style="width: 100%;" scroll-with-animation :scroll-left="cardLeft" scroll-x <scroll-view style="width: 100%;" scroll-with-animation :scroll-left="cardLeft"
@scroll="handleTop" :show-scrollbar="false"> :scroll-x="canmove" @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="true" :scroll-top="scrollTop" scroll-with-animation :scroll-y="canmove"
@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">
@ -47,18 +47,6 @@
:id="`a${index0}_${index1}`" style="position: relative;" :id="`a${index0}_${index1}`" style="position: relative;"
@click="rulerTouchClick(item1,index0,index1)" @click="rulerTouchClick(item1,index0,index1)"
:data-index0="index0" :data-index1="index1"> :data-index0="index0" :data-index1="index1">
<!-- <view class="time-button-orange-spe"
:style="{left:flyNumber.index0?`-130rpx`:`0`}"
v-if="flyNumber.index0 === index0 && flyNumber.index1 === index1 && index1==0">
请选择服务指令迁移的目标单元格
</view>
<view class="time-button-orange"
:style="{left:flyNumber.index0?`-130rpx`:`0`}"
v-if="flyNumber.index0 === index0 && flyNumber.index1 === index1 && index1">
请选择服务指令迁移的目标单元格
</view> -->
<view class="title-time-blue" <view class="title-time-blue"
v-show="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && isRule"> v-show="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && isRule">
<image class="blue-img" lazy-load <image class="blue-img" lazy-load
@ -89,16 +77,8 @@
</text> </text>
{{ item1.endTime }} {{ item1.endTime }}
</view> </view>
</view> </view>
</view> </view>
<!-- <view
v-if="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && !item1.startTime"
class="pulic-time">
{{(item0.positioning.length == 1 ? ('0' + item0.positioning) : item0.positioning) + ":" + timeArray[index1]}}
</view> -->
</view> </view>
</view> </view>
</view> </view>
@ -120,7 +100,8 @@
<view class="blue-font"> <view class="blue-font">
情绪标签 情绪标签
</view> </view>
<view :class="settingopen?`right-setting-target` :`right-setting`" @click="clickopen"> <view :class="settingopen?`right-setting-target` :`right-setting`" @click="clickopen"
v-show="editingmode">
设置 设置
</view> </view>
</view> </view>
@ -181,14 +162,14 @@
</view> </view>
<image class="check-img" <image class="check-img"
:src="serverUrl + (item.izSelected==`Y`?item.picFocus: item.pic)" /> :src="serverUrl + (item.izSelected==`Y`?item.picFocus: item.pic)" />
<view class="check-text"> <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 }}
</view> </view>
<view class="check-text" <view class="check-text"
:style="item.izSelected==`Y`?{color:`#0074E1`}: {}"> :style="item.izSelected==`Y`?{color:`#0074E1`}: {}">
四肢承伸直且僵硬无法弯曲状标识要区分为左右和手脚 {{ item.describ }}
</view> </view>
</view> </view>
</view> </view>
@ -199,7 +180,103 @@
</view> </view>
</view> </view>
</view> </view>
<view class="right-instant"
:style="isblue?{border:`4rpx dashed #0089FE`}:{border:`4rpx dashed #fff`}">
<view class="right-instant-title">
<view class="blue-shu" style="margin-left: 30rpx;"></view>
<view class="blue-font">
即时标签
</view>
</view>
<view class="right-instant-items">
<image class="haven-img" v-if="!bottomItems.length"
src="/static/index/procurement/haven.png" mode="aspectFill"></image>
</view>
</view>
<view class="right-tree">
<view class="right-servers">
<view :class="servertype===index?`servertarget`:`server`"
v-for="(item,index) in [`服务指令`,`服务指令包`]" :key="index" @click="openserver(index)">
{{ item }}
</view>
<view class="servers-heng" :style="servertype?{left:`294rpx`}:{}"></view>
<image class="explain-icon" @click="explainopen=!explainopen"
src="/static/index/procurement/explain.png" mode="aspectFill"></image>
<view class="explain-text" v-show="explainopen">
<view class="triangle">
<view class="triangle-small"></view>
</view>
双击服务指令可编辑矩阵
</view>
</view>
<view class="three-items">
<view class="tree-item">
<scroll-view style="height: 100%;width:100%;" :scroll-y="canmove"
@scroll="handleScroll">
<view class="tree-card"
v-for="(item,index) in bigArray[upmenuIndex]?.children[downmenuIndex]?.children"
:key="index" @touchstart="handleTouchStart(item,index,$event)"
@click="clickaddnew(item,index)">
<image class="card-icon"
:src="index === thirdmenuIndex?serverUrl+item.immediateFileFocus:serverUrl+item.immediateFile"
mode="aspectFill"></image>
<view class="card-text" style="margin-top: 0;"
:style="index === thirdmenuIndex?{color:`#0084ff`}:{}">
{{ item.title }}
</view>
</view>
</scroll-view>
</view>
<view class="tree-item">
<scroll-view style="height: 100%;width:100%;" scroll-with-animation
:scroll-y="canmove">
<view class="tree-card" v-for="(item,index) in bigArray[upmenuIndex]?.children"
:key="index" @click="secondContant(index)">
<donghua :width="`50rpx`" :height="`50rpx`" :links="item.url"
:playing="index === downmenuIndex" :interval="120" />
<view class="card-text"
:style="index === downmenuIndex?{color:`#0084ff`}:{}">
{{ item.title }}
</view>
</view>
</scroll-view>
</view>
<view class="tree-item" style="width: 28%;">
<scroll-view style="height: 100%;width:100%;" scroll-with-animation
:scroll-y="canmove">
<view class="tree-card" v-for="(item,index) in bigArray" :key="index"
@click="changLeft(index)">
<donghua :width="`50rpx`" :height="`50rpx`" :links="item.url"
:playing="index === upmenuIndex" :interval="120" />
<view class="card-text" :style="index === upmenuIndex?{color:`#0084ff`}:{}">
{{ item.title }}
</view>
</view>
</scroll-view>
</view>
</view>
</view>
<view class="right-finally">
<image class="finally-older"
:src="`/static/index/newindex/leftmenu/${uni.getStorageSync('NUall').elderInfo?.name?`older`:`nopeople`}.png`" />
<view class="fin-button" @click="jumpToWatch">
<image class="button-imge" :src="`/static/index/newindex/leftmenu/watch.png`" />
<view class="button-text">
监控
</view>
</view>
<view class="fin-button" @click="shareToWeixin">
<image class="button-imge" :src="`/static/index/newindex/leftmenu/share.png`" />
<view class="button-text">
分享
</view>
</view>
<view class="blue-right" @click="cleanallopen();editingmode = !editingmode">
{{ editingmode?"确定":"+编辑" }}
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -259,39 +336,7 @@
</view> </view>
</view> </view>
</view> </view>
<!-- 替换表格的的弹出层 --> <!-- <view class="move-view" v-show="moveopen"></view> -->
<view v-show="sayisopen" class="popup-say" @click="sayisopen=false">
<view class="popup-say-content" style="padding: 30rpx 0;" :style="{ opacity: sayisopacity ? 1 : 0 }"
@click.stop>
<view style="margin-top: 20rpx;margin-bottom: 20rpx;;margin-left: 30rpx;font-size: 32rpx;">
<view>
体型标签
</view>
</view>
<view style="display: flex;flex-wrap: wrap;">
<view v-for="(item,index) in nameArray.slice(0,5)" :key="index">
<view class="tags-father">
<image class="tags-img" :src="`/static/index/tagNames/${index}0.png`" />
<view class="tags-font">{{item}}</view>
</view>
</view>
</view>
<view style="margin-top: 40rpx;margin-bottom: 20rpx;;margin-left: 30rpx;font-size: 32rpx;">
<view>
情绪标签
</view>
</view>
<view style="display: flex;flex-wrap: wrap;">
<view v-for="(item,index) in nameArray.slice(5,12)" :key="index">
<view class="tags-father">
<image class="tags-img" :src="`/static/index/tagNames/${index+5}0.png`" />
<view class="tags-font">{{item}}</view>
</view>
</view>
</view>
<view class="popup-say-three"></view>
</view>
</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>
@ -355,6 +400,7 @@
</view> </view>
</view> </view>
</view> </view>
<errorshow :show="openerror" :font="errshow" @close="openerror=false" />
</view> </view>
</template> </template>
@ -369,15 +415,45 @@
type: Boolean, type: Boolean,
required: true, required: true,
}, },
canmove: {
type: Boolean,
required: true,
},
isblue: {
type: Boolean,
required: true,
},
sendxy: {
type: Array,
required: true
}
}); });
watch(() => props.canmove, (newVal, oldVal) => {
if (oldVal === false && newVal === true) {
// console.log("aaaaa", inArea(props.sendxy[0],props.sendxy[1]))
if (inArea(props.sendxy[0], props.sendxy[1])) {
console.log("添加即时指令")
}
}
});
const editingmode = ref(false);
const openerror = ref(false)
const errshow = ref("")
const emit = defineEmits(['handmove', 'handsend'])
const serverUrl = ref(uni.getStorageSync('imagebase')) const serverUrl = ref(uni.getStorageSync('imagebase'))
const bodystatus = ref(false); const bodystatus = ref(false);
const bodystatustarget = ref(-1); const bodystatustarget = ref(-1);
const facestatus = ref(false); const facestatus = ref(false);
const facestatustarget = ref(-1); const facestatustarget = ref(-1);
const menutype = ref(0) const menutype = ref(0);
const servertype = ref(0);
const settingopen = ref(false); const settingopen = ref(false);
const explainopen = ref(false);
/* ---- transform ---- /* ---- transform ----
注意虽然这是响应式但我们只在 rAF 里更新它受控更新避免频繁触发 Vue 渲染 */ 注意虽然这是响应式但我们只在 rAF 里更新它受控更新避免频繁触发 Vue 渲染 */
@ -469,6 +545,7 @@
const downList = ref<any>() const downList = ref<any>()
const isop = ref(false); const isop = ref(false);
const bigArray = ref([]); const bigArray = ref([]);
const smallArray = ref([]);
const isopen = ref(false) const isopen = ref(false)
const songisopen = ref(false) const songisopen = ref(false)
const isopacity = ref(false) const isopacity = ref(false)
@ -477,10 +554,6 @@
const deleteisopen = ref(false); const deleteisopen = ref(false);
const deletename = ref("") const deletename = ref("")
const deleteisopacity = ref(false) const deleteisopacity = ref(false)
//
const sayisopen = ref(false);
const sayname = ref("")
const sayisopacity = ref(false)
const saveleft = ref(6); const saveleft = ref(6);
const saveright = ref(11); const saveright = ref(11);
@ -499,6 +572,11 @@
return "right-top" return "right-top"
} }
}) })
//
const cleanallopen = () => {
settingopen.value = false;
explainopen.value = false;
}
// //
const secondtemp = ref([]) const secondtemp = ref([])
// //
@ -513,7 +591,7 @@
if (now - lastTap.value < DOUBLE_TAP_DELAY) { if (now - lastTap.value < DOUBLE_TAP_DELAY) {
// //
thirdmenuIndex.value = e thirdmenuIndex.value = e
addnew() // addnew()
// //
lastTap.value = 0 lastTap.value = 0
} else { } else {
@ -617,31 +695,24 @@
} }
// //
const changLeft = (index : number) => { const changLeft = (index : number) => {
if (index === 5) { cleanallopen()
uni.navigateTo({ if (upmenuIndex.value === index) {
url: "/pages/watch/full"
})
return return
} }
iszhouqi.value = false;
weekIndex.value = -1;
monthIndex.value = -1;
weekValue.value = "";
monthValue.value = "";
secondtop.value = 0.01
firsttop.value = 0.01
//西downmenuIndex西
downdonghua.value = -1;
nextTick(() => {
secondtop.value = 0
firsttop.value = 0
downdonghua.value = 0;
})
downmenuIndex.value = 0;
upmenuIndex.value = index upmenuIndex.value = index
downList.value = bigArray.value[index]?.children downList.value = bigArray.value[index]?.children
thirdmenuIndex.value = 0;
downmenuIndex.value = 1;
thirdmenuIndex.value = 1;
nextTick(() => {
downmenuIndex.value = 0;
thirdmenuIndex.value = 0;
})
// console.log("", downList.value)
// thirdmenuIndex.value = 0;
} }
const isempty = ref(false); const isempty = ref(false);
const changecard = () => { const changecard = () => {
@ -854,9 +925,9 @@
]); ]);
// //
const upmenuIndex = ref<number>(1); const upmenuIndex = ref<number>(1);
const downmenuIndex = ref<number>(0); const downmenuIndex = ref<number>(1);
const downdonghua = ref(-1); const downdonghua = ref(1);
const thirdmenuIndex = ref<number>(0); const thirdmenuIndex = ref<number>(1);
const forthmenuIndex = ref<number>(0); const forthmenuIndex = ref<number>(0);
const clickzhilingbao = (e : number) => { const clickzhilingbao = (e : number) => {
@ -879,18 +950,19 @@
}) })
const secondContant = (index : number) => { const secondContant = (index : number) => {
iszhouqi.value = false; cleanallopen()
weekIndex.value = -1; if (downmenuIndex.value === index) {
monthIndex.value = -1; return
weekValue.value = ""; }
monthValue.value = ""; // iszhouqi.value = false;
// weekIndex.value = -1;
// monthIndex.value = -1;
// weekValue.value = "";
// monthValue.value = "";
downmenuIndex.value = index; downmenuIndex.value = index;
downdonghua.value = index; // downdonghua.value = index;
thirdmenuIndex.value = 0; thirdmenuIndex.value = 0;
firsttop.value = 0.01;
nextTick(() => {
firsttop.value = 0;
})
} }
const timer = ref(null);// const timer = ref(null);//
@ -918,6 +990,11 @@
}, 100) }, 100)
} }
const jumpToWatch = () => {
uni.navigateTo({
url: "/pages/watch/full"
})
}
const clickshare = () => { const clickshare = () => {
uni.share({ uni.share({
provider: "weixin", provider: "weixin",
@ -938,55 +1015,60 @@
const jiao = ref([false, false]) const jiao = ref([false, false])
// //
const showDetail = ref([-1, -1]) const showDetail = ref([-1, -1])
//
const ruleritem = ref({})
const rulerTouchClick = (item : any, index0 : number, index1 : number) => { const rulerTouchClick = (item : any, index0 : number, index1 : number) => {
isDelete.value = false; // isDelete.value = false;
saveEditIndex.value.index0 = index0; saveEditIndex.value.index0 = index0;
saveEditIndex.value.index1 = index1; saveEditIndex.value.index1 = index1;
centerCell(); centerCell();
isRule.value = true; ruleritem.value = item;
setTimeout(() => { console.log("点击表格",item)
if (item.directiveName && open.value) {
touchindex1.value = index1; // isRule.value = true;
const query = uni.createSelectorQuery() // setTimeout(() => {
query // if (item.directiveName && open.value) {
.selectAll('.super-card-time-card') // touchindex1.value = index1;
.boundingClientRect((data : any) => { // const query = uni.createSelectorQuery()
data.forEach(async (res : any) => { // query
// // .selectAll('.super-card-time-card')
if (res.left > 100 && res.left < 1067 && res.top < 670 && res.top > 50 && res.dataset.index0 == index0 && res.dataset.index1 == index1) { // .boundingClientRect((data : any) => {
if (res.left > 100 && res.left < 500) { // data.forEach(async (res : any) => {
// // //
openX.value = Math.floor(res.left) + 528; // if (res.left > 100 && res.left < 1067 && res.top < 670 && res.top > 50 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
jiao.value[0] = true // if (res.left > 100 && res.left < 500) {
} else { // //
openX.value = Math.floor(res.left) - 18 // openX.value = Math.floor(res.left) + 528;
jiao.value[0] = false // jiao.value[0] = true
} // } else {
if (res.top > 300) { // openX.value = Math.floor(res.left) - 18
// // jiao.value[0] = false
openY.value = Math.floor(res.top) + 100; // }
jiao.value[1] = true // if (res.top > 300) {
} else { // //
openY.value = Math.floor(res.top) + 180 // openY.value = Math.floor(res.top) + 100;
jiao.value[1] = false // jiao.value[1] = true
} // } else {
await nextTick() // openY.value = Math.floor(res.top) + 180
isopen.value = true; // jiao.value[1] = false
// }
// await nextTick()
// isopen.value = true;
showDetail.value[0] = index0; // showDetail.value[0] = index0;
showDetail.value[1] = index1; // showDetail.value[1] = index1;
// console.log("shaa",timearr.value[showDetail.value[0]]?.children[showDetail.value[1]]?.izPackage) // // console.log("shaa",timearr.value[showDetail.value[0]]?.children[showDetail.value[1]]?.izPackage)
isopacity.value = false; // isopacity.value = false;
// // //
setTimeout(() => { // setTimeout(() => {
isopacity.value = true; // isopacity.value = true;
}, 100) // }, 100)
} // }
}) // })
}) // })
.exec() // .exec()
} // }
}, 400) // }, 400)
} }
const shakyTable = ref(false); const shakyTable = ref(false);
const reldata = ref([]); const reldata = ref([]);
@ -1033,13 +1115,7 @@
} }
const indexsave = ref([-1, -1]); const indexsave = ref([-1, -1]);
const opensay = () => {
sayisopacity.value = false;
sayisopen.value = true;
setTimeout(() => {
sayisopacity.value = true
}, 50)
}
const buttonBlue = ref(false) const buttonBlue = ref(false)
let animTimer = null let animTimer = null
@ -1413,7 +1489,7 @@
const geteverything = () => { const geteverything = () => {
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("zzzz11111111111", uni.getStorageSync('nuId'), uni.getStorageSync('elderId')) console.log("zzzz11111111111", 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 => ({
@ -1447,13 +1523,14 @@
} }
} }
const savePackagelist = ref([]); const savePackagelist = ref([]);
onMounted(() => { onMounted(() => {
savePackagelist.value = uni.getStorageSync('Packagelist') || [] savePackagelist.value = uni.getStorageSync('Packagelist') || []
let res = uni.getStorageSync('saveTree0') let res = uni.getStorageSync('saveTree0')
console.log("00000", res)
let goodArray = [] let goodArray = []
myArray.forEach((element : any) => { myArray.forEach((element : any) => {
element.children.forEach((element1 : any) => { element?.children.forEach((element1 : any) => {
goodArray.push({ goodArray.push({
name: element1.title, name: element1.title,
url: element1.url, url: element1.url,
@ -1461,8 +1538,63 @@
}) })
}) })
secondtemp.value = goodArray secondtemp.value = goodArray
if (res.result) { let data0 = res.result.fwzl
res.result.forEach((element : any) => { console.log("0000", data0)
if (data0) {
data0.forEach((element : any) => {
if (element.netFlag == '0') {
doctorsayList.value.forEach((res : any) => {
if (res.name == element.title) {
element.url = res.url
}
})
if (!element.url) {
element.url = [`/static/index/sharelogo.png`]
}
} else {
let array = []
element.animationPath.forEach((res : any) => {
array.push(serverUrl.value + res)
})
if (array.length) {
element.url = array
} else {
element.url = [`/static/index/sharelogo.png`]
}
}
element?.children.forEach((res1 : any) => {
if (res1.netFlag == '0') {
secondtemp.value.forEach((res2 : any) => {
if (res2.name == res1.title) {
res1.url = res2.url
}
})
if (!res1.url) {
res1.url = [`/static/index/sharelogo.png`]
}
// console.log("zzzz",res1)
} else {
let array = []
res1.animationPath.forEach((res : any) => {
array.push(serverUrl.value + res)
})
if (array.length) {
res1.url = array
} else {
res1.url = [`/static/index/sharelogo.png`]
}
}
})
})
bigArray.value = data0;
}
let data1 = res.result.jszl
if (data1) {
data1.forEach((element : any) => {
if (element.netFlag == '0') { if (element.netFlag == '0') {
doctorsayList.value.forEach((res : any) => { doctorsayList.value.forEach((res : any) => {
if (res.name == element.title) { if (res.name == element.title) {
@ -1472,7 +1604,7 @@
} else { } else {
element.url = element.animationPath element.url = element.animationPath
} }
element.children.forEach((res1 : any) => { element?.children.forEach((res1 : any) => {
if (res1.netFlag == '0') { if (res1.netFlag == '0') {
secondtemp.value.forEach((res2 : any) => { secondtemp.value.forEach((res2 : any) => {
if (res2.name == res1.title) { if (res2.name == res1.title) {
@ -1485,15 +1617,12 @@
}) })
}) })
bigArray.value = res.result; smallArray.value = data1;
downList.value = bigArray.value[0].children
} }
upmenuIndex.value = -1;
downdonghua.value = -1;
setTimeout(() => { setTimeout(() => {
upmenuIndex.value = 0; upmenuIndex.value = 0;
downdonghua.value = 0; downmenuIndex.value = 0;
thirdmenuIndex.value = 0;
}, 50) }, 50)
uni.$on('where', findback); uni.$on('where', findback);
downdonghua.value = 0; downdonghua.value = 0;
@ -1518,6 +1647,9 @@
const listsave = ref([]) const listsave = ref([])
const clickopen = () => { const clickopen = () => {
if (!settingopen.value) {
cleanallopen()
}
settingopen.value = !settingopen.value; settingopen.value = !settingopen.value;
if (settingopen.value) { if (settingopen.value) {
bodyTagListLooksave.value = JSON.parse(JSON.stringify(bodyTagList.value)); bodyTagListLooksave.value = JSON.parse(JSON.stringify(bodyTagList.value));
@ -1552,6 +1684,10 @@
} }
listsave.value = data listsave.value = data
} }
const openserver = (index : number) => {
servertype.value = index
}
const cansumit = ref(false); const cansumit = ref(false);
onBeforeUnmount(() => { onBeforeUnmount(() => {
@ -1620,6 +1756,264 @@
forthmenuIndex.value = 0; forthmenuIndex.value = 0;
} }
const deletedonghua = ref(false); const deletedonghua = ref(false);
const istargetblue = ref(false);
function inArea(x, y) {
return (
x >= 790 &&
x <= 1062 &&
y >= 147 &&
y <= 255
)
}
const addontime = () => {
// scrollLeft.value = 1;
let allobject = bigArray.value[upmenuIndex.value].children[downmenuIndex.value].children[thirdmenuIndex.value]
let stopIt = false
bottomItems.value.forEach((element : any, index : number) => {
if (element.directiveName == allobject.title) {
stopIt = true
}
})
nextTick(() => {
if (!stopIt) {
scrollLeft.value = 0;
if (bottomItems.value.length && bottomItems.value[0].target === "#03a4ff") {
bottomItems.value[0].target = "#fff"
clearTimeout(cleansettimeout.value);
}
let pushValue = allobject;
pushValue.directiveId = allobject.id;
pushValue.directiveName = allobject.title;
pushValue.serviceDuration = allobject.serviceDuration;
pushValue.target = `#03a4ff`
pushValue.id = ""
pushValue.nuId = uni.getStorageSync('nuId');
pushValue.nuName = uni.getStorageSync('nuName');
pushValue.elderId = uni.getStorageSync('elderId');
pushValue.elderName = uni.getStorageSync('NUall').elderInfo.name;
bottomItems.value.unshift(pushValue)
//
cleansettimeout.value = setTimeout(() => {
bottomItems.value[0].target = `#fff`;
console.log("即时指令看看进入了啥", pushValue)
addInstant(pushValue).then((res : any) => {
console.log("啥啊", res)
if (res.success) {
geteverything()
}
})
}, 1500)
} else {
clearTimeout(cleansettimeoutrel.value);
isop.value = true;
cleansettimeoutrel.value = setTimeout(() => {
isop.value = false;
// saveAll()
}, 1500)
}
})
}
/***** 组件卸载 *****/
// onBeforeUnmount(() => {
// cleanupAll()
// })
const longPressTimer = ref(null);
const redNameindex0 = ref([])
const isTuoing = ref(false)
const handleTouchStart = (item : any, index : number, e : any) => {
//
if (!editingmode.value) return
// thirdmenuIndex.value = index
shakyTable.value = false
saveX.value = Math.floor(e.touches[0].pageX);
saveY.value = Math.floor(e.touches[0].pageY);
longPressTimer.value = setTimeout(() => {
redNameindex0.value = [];
if (isScrolling.value) return
isTuoing.value = true;
emit('handsend', item)
// emit('savename', item.title, reldata.value);
}, 200)
}
const isScrolling = ref(false)
//
let scrollTimeout = null
function handleScroll(e) {
isScrolling.value = true
//
if (scrollTimeout) clearTimeout(scrollTimeout)
//
scrollTimeout = setTimeout(() => {
isScrolling.value = false;
}, 400)
}
const rulerTouchMove = (e : any) => {
const moveXa = Math.floor(e.touches[0].pageX);
const moveYa = Math.floor(e.touches[0].pageY);
//
if (
Math.abs(moveXa - moveX.value) > 0 ||
Math.abs(moveYa - moveY.value) > 0
) {
//
if (timer.value) {
clearTimeout(timer.value);
timer.value = null;
}
}
}
//
const rulerTouchEnd = () => {
isTuoing.value = false;
if (timer.value) {
clearTimeout(timer.value);
timer.value = null;
}
}
const dblDelay = 300 // (ms)
const lastClick = ref(0)
let singleTimer = null
const clickaddnew = (item, index) => {
thirdmenuIndex.value = index
const now = Date.now()
if (now - lastClick.value < dblDelay) {
//
if (singleTimer) {
clearTimeout(singleTimer)
singleTimer = null
}
lastClick.value = 0
// console.log('',item)
// const openerror = ref(false)
// const errshow = ref("")
if (!editingmode.value) {
errshow.value = "添加服务指令,请切换成编辑模式"
openerror.value = true;
return
}
if (saveEditIndex.value.index0 === -1) {
errshow.value = "添加服务指令,请选择左侧的单元格"
openerror.value = true
return
}
newaddruler(item)
return
}
lastClick.value = now
}
const newaddruler = (item) => {
let allobject = item
// console.log("")
let cycleType = "";
let cycleValue = "";
if (allobject.cycleTypeId == 1) {
cycleType = "日常"
} else {
if (weekIndex.value != -1) {
cycleType = weekValue.value
let cycleTypeIndex = 0;
weekDays.forEach((element : any, index : any) => {
if (element == weekValue.value) {
cycleTypeIndex = index
}
})
cycleValue = cycleTypeIndex.toString()
} else {
cycleType = monthValue.value + "号";
cycleValue = monthValue.value
}
iszhouqi.value = false;
weekIndex.value = -1;
monthIndex.value = -1;
weekValue.value = "";
monthValue.value = "";
}
const startHour = Number(saveEditIndex.value.index0)
const startMinute = Number(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].tagName)
const endMinute = startMinute + Number(allobject.serviceDuration)
const endHour = startHour + Math.floor(endMinute / 60)
const formattedStart = `${String(startHour)}:${String(startMinute).padStart(2, '0')}`
const formattedEnd = `${String(endHour)}:${String(endMinute % 60).padStart(2, '0')}`
//
let param = {
id: timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id ,
nuId: uni.getStorageSync('nuId'),
nuName: uni.getStorageSync('nuName'),
elderId: uni.getStorageSync('elderId'),
elderName: uni.getStorageSync('NUall').elderInfo.name,
directiveId: allobject.id,
directiveName: allobject.title,
typeId: allobject.typeId,
typeName: allobject.typeName,
categoryId: allobject.categoryId,
categoryName: allobject.categoryName,
cycleTypeId: allobject.cycleTypeId,
cycleType: cycleType,
cycleValue: cycleValue,
startTime: formattedStart,
endTime: formattedEnd,
positioning: saveEditIndex.value.index0.toString(),
positioningLong: saveEditIndex.value.index1.toString(),
izPackage: 'N',
previewFile: allobject.previewFile,
previewFileSmall: allobject.previewFileSmall,
serviceDuration: allobject.serviceDuration,
immediateFile: allobject.immediateFile,
immediateFileFocus: allobject.immediateFileFocus,
netImmediateFileFocus: allobject.netImmediateFileFocus,
netImmediateFile: allobject.netImmediateFile,
tagName: timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].tagName,
mp3File: allobject.mp3File,
netMp3File: allobject.netMp3File,
mp4File: allobject.mp4File,
netMp4File: allobject.netMp4File,
serviceContent: allobject.serviceContent,
netPreviewFile: allobject.netPreviewFile,
netPreviewFileSmall: allobject.netPreviewFileSmall,
}
//
timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1] = param;
// console.log("",param)
let data = {
index0: saveEditIndex.value.index0,
index1: saveEditIndex.value.index1
}
whereEvent(data);
const now = new Date();
const ts = `${now.getFullYear()}-${(now.getMonth()+1).toString().padStart(2,'0')}-${now.getDate().toString().padStart(2,'0')} ${now.getHours().toString().padStart(2,'0')}:${now.getMinutes().toString().padStart(2,'0')}:${now.getSeconds().toString().padStart(2,'0')}`;
let postdata = {
nuId : uni.getStorageSync('nuId'),
directiveId: allobject.id,
positioning:saveEditIndex.value.index0.toString(),
positioningLong: saveEditIndex.value.index1.toString(),
tagName:timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].tagName,
startTime: formattedStart,
izPackage:`N`,
cycleTypeId:3,
cycleValue:0,
optTime:ts,
// optCount:""
}
addDirective(postdata).then((res)=>{
console.log("kankan",postdata,res)
if (res.success) {
geteverything()
}
})
}
onBeforeUnmount(() => {
if (singleTimer) clearTimeout(singleTimer)
})
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -1,21 +1,39 @@
<template> <template>
<view class="backgroundContainer"> <view class="backgroundContainer" @touchmove.stop="getxy" @touchend.stop="cleanall">
<!-- 手指拖动 -->
<view class="box" :style="boxStyle">
<view class="title-time-blue">
<image class="blue-img" lazy-load src="/static/index/target.png" />
</view>
<image class="card-icon" :src="movelook.url" mode="aspectFill"></image>
<view class="card-text" style="margin-top: 0;">
{{ movelook.title }}
</view>
</view>
<!-- 左侧菜单 --> <!-- 左侧菜单 -->
<leftcontent :list="arrlist" @navurl="navurl" :userInfo="userInfo"></leftcontent> <leftcontent :list="arrlist" @navurl="navurl" :userInfo="userInfo"></leftcontent>
<!-- 主页 --> <!-- 主页 -->
<!-- <index :isShow="menuIndex==0" v-if="swipedex==0&&!specialPage" @swip="swip" @gospecial="gospecial" /> --> <!-- <index :isShow="menuIndex==0" v-if="swipedex==0&&!specialPage" @swip="swip" @gospecial="gospecial" /> -->
<index :isShow="menuIndex==0" v-if="swipedex==0&&!specialPage" @swip="swip" @gospecial="gospecial" /> <index :isShow="menuIndex==0" v-if="swipedex==0&&!specialPage" @swip="swip" @gospecial="gospecial" />
<!-- 新主页 --> <!-- 新主页 -->
<bignurse :isshow="menuIndex==0" v-if="swipedex==0&&specialPage==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" /> <bignurse :isshow="menuIndex==0"
v-if="swipedex==0&&specialPage==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
<!-- 户嘱页 --> <!-- 户嘱页 -->
<newnurse :isshow="menuIndex==1" v-if="swipedex==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" /> <newnurse :isshow="menuIndex==1" v-if="swipedex==1" :canmove="startmoveit"
:sendxy="sendxy" :isblue='isblue' @handmove="handmove" @handsend="handsend" />
<!-- 医嘱 --> <!-- 医嘱 -->
<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" v-if="swipedex==3&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" /> <logistics :isshow="menuIndex==3"
v-if="swipedex==3&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
<invoicing :isshow="menuIndex==6" v-if="swipedex==6&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
<invoicing :isshow="menuIndex==6"
v-if="swipedex==6&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
<!-- 医嘱页 --> <!-- 医嘱页 -->
<!-- <logistics :isShow="menuIndexshowfourth" v-if="menuIndex==3" /> --> <!-- <logistics :isShow="menuIndexshowfourth" v-if="menuIndex==3" /> -->
<requestform :isShow="menuIndex==4" v-if="swipedex==4" /> <requestform :isShow="menuIndex==4" v-if="swipedex==4" />
@ -31,46 +49,47 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'; import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue';
import { queryPadPageList ,getPermissionList } from '@/pages/watch/api/lunpan.js' import { queryPadPageList, getPermissionList } from '@/pages/watch/api/lunpan.js'
import index from "./component/index.vue" import index from "./component/index.vue"
import newnurse from "./component/nurse/newindex.vue" import newnurse from "./component/nurse/newindex.vue"
import equipment from "./component/equipment.vue" import equipment from "./component/equipment.vue"
import logistics from "./component/logistics/index.vue" import logistics from "./component/logistics/index.vue"
import invoicing from "./component/invoicing/index.vue" import invoicing from "./component/invoicing/index.vue"
import requestform from "./component/pleasetake/takehome.vue" import requestform from "./component/pleasetake/takehome.vue"
import doctorask from "./component/doctorask/doctorask.vue" import doctorask from "./component/doctorask/doctorask.vue"
// import nurse from "./component/nurse/index.vue" // import nurse from "./component/nurse/index.vue"
import bignurse from "./component/nurse/bigindex.vue" import bignurse from "./component/nurse/bigindex.vue"
import { onBackPress,onShow } from '@dcloudio/uni-app'; import { onBackPress, onShow } from '@dcloudio/uni-app';
import { getNcPackagelist } from './component/nurse/api.js' import { getNcPackagelist } from './component/nurse/api.js'
import leftcontent from "./component/leftcontent/leftcontent.vue" import leftcontent from "./component/leftcontent/leftcontent.vue"
import defaultr from '@/pages/procurement/components/default.vue'; import defaultr from '@/pages/procurement/components/default.vue';
onBackPress(() => { onBackPress(() => {
if(specialPage.value){ if (specialPage.value) {
specialPage.value -- specialPage.value--
return true; // return true; //
}else{ } else {
return false; // return false; //
} }
}) })
const listarr = ref([]); const listarr = ref([]);
onMounted(() => { onMounted(() => {
menuIndex.value = 0; menuIndex.value = 0;
swipedex.value = 0; swipedex.value = 0;
// getNcPackagelist().then((res : any) => { // getNcPackagelist().then((res : any) => {
// // // //
// 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)
}) })
}) })
const gospecial = (index:number) => { const gospecial = (index : number) => {
specialPage.value = index specialPage.value = index
} }
// //
@ -83,131 +102,133 @@
}) })
} }
const tabbrarr = ref([ const tabbrarr = ref([
{ name: '护理', url: '/static/shouye/sy/n0.png', urls: '/static/shouye/sy/n1.png' ,type:'kzgn_hljz'}, { name: '护理', url: '/static/shouye/sy/n0.png', urls: '/static/shouye/sy/n1.png', type: 'kzgn_hljz' },
{ name: '医疗', url: '/static/shouye/sy/y0.png', urls: '/static/shouye/sy/y1.png' ,type:'kzgn_yljz'}, { name: '医疗', url: '/static/shouye/sy/y0.png', urls: '/static/shouye/sy/y1.png', type: 'kzgn_yljz' },
{ name: '后勤', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png' ,type:'kzgn_hqjz'}, { name: '后勤', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png', type: 'kzgn_hqjz' },
{ name: '库房', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png' ,type:'kzgn_kfjz'}, { name: '库房', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png', type: 'kzgn_kfjz' },
]) ])
const specialPage = ref(0) const specialPage = ref(0)
const navurl = (e,v) => { const navurl = (e, v) => {
swipedex.value = -1; swipedex.value = -1;
specialPage.value = 0 specialPage.value = 0
switch (v.type){ switch (v.type) {
case 'hldy': case 'hldy':
swipedex.value = 0; swipedex.value = 0;
setTimeout(()=>{ setTimeout(() => {
menuIndex.value = 0; menuIndex.value = 0;
},100) }, 100)
// console.log('') // console.log('')
break; break;
case 'kzgn_hljz': case 'kzgn_hljz':
swipedex.value = 1; swipedex.value = 1;
setTimeout(()=>{ setTimeout(() => {
menuIndex.value =1; menuIndex.value = 1;
},100) }, 100)
// console.log('') // console.log('')
break; break;
case 'kzgn_yljz': case 'kzgn_yljz':
swipedex.value = 2; swipedex.value = 2;
setTimeout(()=>{ setTimeout(() => {
menuIndex.value = 2; menuIndex.value = 2;
},100) }, 100)
// console.log('') // console.log('')
break; break;
case 'kzgn_hqjz': case 'kzgn_hqjz':
swipedex.value = 3; swipedex.value = 3;
setTimeout(()=>{ setTimeout(() => {
menuIndex.value = 3; menuIndex.value = 3;
},100) }, 100)
// console.log('') // console.log('')
break; break;
case 'kzgn_kfjz': case 'kzgn_kfjz':
swipedex.value = 6; swipedex.value = 6;
setTimeout(()=>{ setTimeout(() => {
menuIndex.value = 6; menuIndex.value = 6;
},100) }, 100)
//console.log('') //console.log('')
break; break;
case 'kf_cg': case 'kf_cg':
//console.log('') //console.log('')
break; break;
case 'kf_jh': case 'kf_jh':
//console.log('') //console.log('')
break; break;
case 'kf_wj': case 'kf_wj':
//console.log('') //console.log('')
break; break;
case 'hldy_ql': case 'hldy_ql':
swipedex.value = 4; swipedex.value = 4;
setTimeout(()=>{ setTimeout(() => {
menuIndex.value = 4; menuIndex.value = 4;
},100) }, 100)
//console.log('') //console.log('')
break; break;
case 'kf_th': case 'kf_th':
//console.log('退') //console.log('退')
break; break;
case 'kf_pd': case 'kf_pd':
//console.log('') //console.log('')
break; break;
case 'wl': case 'wl':
swipedex.value = 5; swipedex.value = 5;
setTimeout(()=>{ setTimeout(() => {
menuIndex.value = 5; menuIndex.value = 5;
},100) }, 100)
//console.log('') //console.log('')
break; break;
case 'back': case 'back':
uni.navigateBack() uni.navigateBack()
//console.log('') //console.log('')
break; break;
default: default:
break; break;
} }
// //
} }
const arrlist = ref([ const arrlist = ref([
{ name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png' ,type:'hldy'} { name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png', type: 'hldy' }
]) ])
const swip = ()=>{ const swip = () => {
let nuId = uni.getStorageSync('nuId'); let nuId = uni.getStorageSync('nuId');
let arrs = []; let arrs = [];
listarr.value.forEach(item=>{ listarr.value.forEach(item => {
if(item.nuId == nuId){ if (item.nuId == nuId) {
arrs = item.dataList arrs = item.dataList
} }
}) })
let nuName = uni.getStorageSync('nuName') let nuName = uni.getStorageSync('nuName')
queryPadPageList({'pageNo':-1,'nuName':nuName}).then((res => { queryPadPageList({ 'pageNo': -1, 'nuName': nuName }).then((res => {
let arr = res.result.records[0].permissionList; let arr = res.result.records[0].permissionList;
arrlist.value = [{ name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png' ,type:'hldy'}]; arrlist.value = [{ name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png', type: 'hldy' }];
let tbr = []; let tbr = [];
if(arr){ // console.log("xxxx",arr)
arr.forEach((v,i)=>{ if (arr) {
let obj = arrs.find(item=> arr.forEach((v, i) => {
let obj = arrs.find(item =>
item.menuCode == v.menuCode item.menuCode == v.menuCode
); );
if(obj){ if (obj) {
tbr.push(v); tbr.push(v);
} }
}) })
tbr.forEach(item=>{ tbr.forEach(item => {
let obj = tabbrarr.value.find(r=> let obj = tabbrarr.value.find(r =>
r.type == item.menuCode r.type == item.menuCode
); );
if(obj){ if (obj) {
arrlist.value.push(obj); arrlist.value.push(obj);
} }
}) })
} }
let back =[ let back = [
{ name: '请领', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png' ,type:'hldy_ql'}, { name: '请领', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png', type: 'hldy_ql' },
{ name: '智慧物联', url: '/static/shouye/sy/g0.png', urls: '/static/shouye/sy/g1.png' ,type:'wl'}, { name: '智慧物联', url: '/static/shouye/sy/g0.png', urls: '/static/shouye/sy/g1.png', type: 'wl' },
{ name: '返回', url: '/static/shouye/sy/f0.png', urls: '/static/shouye/sy/f1.png' ,type:'back'} { name: '返回', url: '/static/shouye/sy/f0.png', urls: '/static/shouye/sy/f1.png', type: 'back' }
] ]
arrlist.value.push(...back); arrlist.value.push(...back);
// navurl(0,arrlist.value[0]) // navurl(0,arrlist.value[0])
@ -232,7 +253,7 @@
menuIndexshowsecond.value = false menuIndexshowsecond.value = false
menuIndexshowfourth.value = false; menuIndexshowfourth.value = false;
menuIndexshowfifth.value = false menuIndexshowfifth.value = false
if (index === arrlist.value.length-1) { if (index === arrlist.value.length - 1) {
uni.navigateBack() uni.navigateBack()
return return
} }
@ -258,7 +279,7 @@
case 5: case 5:
menuIndexshowfourth.value = true menuIndexshowfourth.value = true
break; break;
default: default:
} }
}, 50) }, 50)
@ -266,7 +287,7 @@
const clientX = ref(0); const clientX = ref(0);
const clientY = ref(0); const clientY = ref(0);
const savename = ref("") const savename = ref("")
const canmove = ref(true)
// //
onMounted(() => { onMounted(() => {
@ -290,25 +311,152 @@
}, 200) }, 200)
} }
const userInfo = ref({}) const userInfo = ref({})
onShow(()=>{ onShow(() => {
userInfo.value = uni.getStorageSync('userInfo'); userInfo.value = uni.getStorageSync('userInfo');
}) })
const box = ref(null);
const boxStyle = ref({
transform: 'translate3d(-500px, -500px, 0px)',
});
function handmove(wh : number[]) {
// transform
const nx = Number(wh[0]) || 0;
const ny = Number(wh[1]) || 0;
// console.log("----", nx, ny)
boxStyle.value = {
transform: `translate3d(${nx - 100}px, ${ny - 70}px, 0)`
};
}
const movelook = ref({
url: "",
title: ""
})
const startmoveit = ref(true)
function handsend(look : any) {
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
}
//
function throttle(fn, delay) {
let lastExecutionTime = 0;
return function (...args) {
const now = Date.now();
if (now - lastExecutionTime >= delay) {
lastExecutionTime = now;
fn.apply(this, args);
}
};
}
const canTrigger = ref(true);
//xy
const animation = uni.createAnimation({
duration: 0,
timingFunction: 'linear',
delay: 0
});
const animationData = ref({});
let ticking = false;
let handle = null;
const sendxy = ref([0,0])
const isblue = ref(false)
const getxyrel = (event) => {
event.preventDefault()
if(!startmoveit.value){
const touch = event.touches[0];
const a = touch.clientX.toFixed(2);
const b = touch.clientY.toFixed(2);
isblue.value = inArea(a,b)
handmove([a,b])
}
}
function inArea(x, y) {
return (
x >= 790 &&
x <= 1062 &&
y >= 147 &&
y <= 255
)
}
const getxy = throttle(getxyrel, 40);
const cleanall = (event) => {
// console.log("zzzz",event)
const touch = event.changedTouches[0];
const a = touch.clientX.toFixed(2);
const b = touch.clientY.toFixed(2);
sendxy.value = [a,b]
handmove([-200,-200])
startmoveit.value = true;
isblue.value = false
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.backgroundContainer { .backgroundContainer {
display: flex; display: flex;
position: relative; position: relative;
width: 100%; width: 100vw;
height: 100vh; height: 100vh;
background-color: #f5f6fa;
overflow: hidden; overflow: hidden;
z-index: 12; z-index: 99;
// margin-top: -35rpx; background-color: #F2F3F8;
} }
.nomessageclass { .nomessageclass {
width: 100vw; width: 100vw;
transition: opacity 1s ease; transition: opacity 1s ease;
} }
.box {
// pointer-events: none;
position: fixed;
left: 0;
top: 0;
width: 190rpx;
height: 140rpx;
border-radius: 20rpx;
background: #fff;
will-change: transform;
pointer-events: none;
z-index: 200;
border: 2rpx dashed #0089FE;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.card-icon {
width: 55rpx;
height: 55rpx;
/* margin-bottom: 10rpx; */
}
.card-text {
margin-top: -10rpx;
color: #0089FE;
font-size: 26rpx;
}
.title-time-blue {
/* 你的定位与尺寸保持不变 */
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 107%;
height: 105%;
z-index: 10;
.blue-img {
width: 100%;
height: 100%;
}
}
}
</style> </style>

View File

@ -140,6 +140,7 @@
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -184,7 +185,7 @@
showPopup.value = false; showPopup.value = false;
} }
onMounted(()=>{ onMounted(()=>{
zyupgrade.value?.check_update();
uni.setStorageSync("appWgtVersion", uni.getSystemInfoSync().appWgtVersion) uni.setStorageSync("appWgtVersion", uni.getSystemInfoSync().appWgtVersion)
if (uni.getStorageSync('appWgtVersion') != uni.getSystemInfoSync().appWgtVersion) { if (uni.getStorageSync('appWgtVersion') != uni.getSystemInfoSync().appWgtVersion) {
showPopup.value = true; showPopup.value = true;

View File

@ -2,7 +2,7 @@
<template> <template>
<view> <view>
<view class="ceshi" v-if="ceshiopen" @click="ceshiopen=false"> <view class="ceshi" v-if="ceshiopen" @click="ceshiopen=false">
<image class="all-home" src="/static/ceshi1.png" mode="aspectFit"></image> <image class="all-home" src="/static/ceshi5.png" mode="aspectFit"></image>
</view> </view>
<view class="home"> <view class="home">
<image class="all-home" src="/static/index/warehouse/newindexhome/backdro.jpg" mode="scaleToFill"></image> <image class="all-home" src="/static/index/warehouse/newindexhome/backdro.jpg" mode="scaleToFill"></image>
@ -159,7 +159,7 @@
// console.log("zzzzzzzzzzzzzzzzzzzzzzzzzzzz") // console.log("zzzzzzzzzzzzzzzzzzzzzzzzzzzz")
queryPadPageList().then((res => { queryPadPageList().then((res => {
leftMenuArray.value = res.result.records; leftMenuArray.value = res.result.records;
// console.log("????111111111111", leftMenuArray.value) console.log("????111111111111", leftMenuArray.value)
})) }))
fontnumber.value = uni.getStorageSync('orgListName'); fontnumber.value = uni.getStorageSync('orgListName');
queryDepartTreeSync().then(res => { queryDepartTreeSync().then(res => {

View File

@ -1,6 +1,6 @@
// 全局请求封装 // 全局请求封装
const base_url = 'https://www.focusnu.com/opeapi' const base_url = 'https://www.focusnu.com/opeapi'
// const base_url = 'http://192.168.2.37:8081/opeapi' // const base_url = 'http://192.168.2.27:8081/opeapi'
// const base_url = 'http://localhost:8091/opeapi' // const base_url = 'http://localhost:8091/opeapi'
// 请求超出时间 // 请求超出时间
const timeout = 5000 const timeout = 5000

BIN
static/ceshi3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

BIN
static/ceshi4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
static/ceshi5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

BIN
static/index/target.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -7,8 +7,8 @@
"id": "__UNI__FB2D473", "id": "__UNI__FB2D473",
"name": "护理单元", "name": "护理单元",
"version": { "version": {
"name": "1.0.024", "name": "1.0.026",
"code": 10024 "code": 10026
}, },
"description": "护理单元", "description": "护理单元",
"developer": { "developer": {

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

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -570,7 +570,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
) )
]); ]);
} }
const camera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/项目/hldy_app_mini/pages/camera.nvue"]]); const camera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/hldy_app_mini/pages/camera.nvue"]]);
export { export {
camera as default camera as default
}; };

View File

@ -578,7 +578,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
) )
]); ]);
} }
const fullcamera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/项目/hldy_app_mini/pages/fullcamera.nvue"]]); const fullcamera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/hldy_app_mini/pages/fullcamera.nvue"]]);
export { export {
fullcamera as default fullcamera as default
}; };

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__FB2D473","name":"护理单元","version":{"name":"1.0.024","code":10024},"description":"护理单元","developer":{"name":"","email":"","url":""},"permissions":{"Share":{},"VideoPlayer":{},"Camera":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"nativePlugins":{"MonitorModule":{"__plugin_info__":{"name":"MonitorModule","description":"bugly升级","platforms":"Android","url":"","android_package_name":"","ios_bundle_id":"","isCloud":false,"bought":-1,"pid":"","parameters":{}}}},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#000000"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"4.76","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}}},"app-harmony":{"useragent":{"value":"uni-app","concatenate":true},"uniStatistics":{"enable":false}},"screenOrientation":["landscape-primary","landscape-secondary"],"launch_path":"__uniappview.html"} {"@platforms":["android","iPhone","iPad"],"id":"__UNI__FB2D473","name":"护理单元","version":{"name":"1.0.026","code":10026},"description":"护理单元","developer":{"name":"","email":"","url":""},"permissions":{"Share":{},"VideoPlayer":{},"Camera":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"nativePlugins":{"MonitorModule":{"__plugin_info__":{"name":"MonitorModule","description":"bugly升级","platforms":"Android","url":"","android_package_name":"","ios_bundle_id":"","isCloud":false,"bought":-1,"pid":"","parameters":{}}}},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#000000"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"4.76","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}}},"app-harmony":{"useragent":{"value":"uni-app","concatenate":true},"uniStatistics":{"enable":false}},"screenOrientation":["landscape-primary","landscape-secondary"],"launch_path":"__uniappview.html"}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB