合并代码

This commit is contained in:
Teng 2026-01-26 13:19:11 +08:00
parent 11b62138a3
commit d8c4f72c99
56 changed files with 1152 additions and 363 deletions

View File

@ -2,8 +2,8 @@
"name" : "护理单元",
"appid" : "__UNI__FB2D473",
"description" : "护理单元",
"versionName" : "1.0.024",
"versionCode" : 10024,
"versionName" : "1.0.026",
"versionCode" : 10026,
"transformPx" : false,
/* 5+App */
"app-plus" : {

View File

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

View File

@ -46,13 +46,13 @@ export const getNcPackagelist = (nuId,elderId) => {
}
// 新增服务指令
export const addDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addDirective`,
method: 'post',
data: params,
})
}
// export const addDirective = (params) => {
// return request({
// url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addDirective`,
// method: 'post',
// data: 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}`,
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 downList = ref<any>()
// const downList = ref<any>()
const isop = ref(false);
const bigArray = ref([]);
const isopen = ref(false)
@ -926,24 +926,6 @@
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) {
timearr.value[element.positioning].children[element.positioningLong] = element;
}
@ -972,7 +954,7 @@
if (res.result) {
bigArray.value = res.result;
}
downList.value = bigArray.value[0].children
// downList.value = bigArray.value[0].children
upmenuIndex.value = -1;
downdonghua.value = -1;
setTimeout(() => {

View File

@ -636,6 +636,36 @@
flex-direction: column;
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 {
@ -644,6 +674,8 @@
transition: opacity 1s ease;
position: relative;
margin-left: -50rpx;
background-color: #F2F3F8;
/* background-color: blue; */
.joystick {
position: absolute;
@ -1285,52 +1317,20 @@
}
.title-time-border {
margin-top: 4rpx;
margin-left: 4rpx;
// border: 1rpx solid black;
width: calc(100% - 8rpx);
height: calc(100% - 8rpx);
/* margin-top: 4rpx;
margin-left: 4rpx; */
width: calc(100% - 15rpx);
height: calc(100% - 15rpx);
border-radius: 20rpx;
display: flex;
// justify-content: center;
align-items: center;
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 {
margin: 10rpx;
@ -1485,7 +1485,7 @@
height: 1225rpx;
margin-top: 0rpx;
overflow: hidden;
z-index: 999;
z-index: 9;
}
@ -1505,7 +1505,7 @@
justify-content: center;
align-items: center;
text-align: center;
z-index: 10;
z-index: 9;
.boom-text {
width: 45rpx;
@ -1517,7 +1517,7 @@
display: flex;
justify-content: center;
align-items: center;
z-index: 1;
/* z-index: 1; */
background-color: #eff0f4;
}
}
@ -2046,6 +2046,7 @@
background-color: #fff;
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 35rpx;
z-index: 1;
.setting-right {
position: absolute;
@ -2090,41 +2091,45 @@
font-weight: 800;
color: #d5d5d5;
}
.check-box-target {
margin-left: 52rpx;
width: 32rpx;
height: 32rpx;
border: 2rpx solid #0080FC;
border-radius: 12rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 15rpx;
font-weight: 800;
color: #0080FC;
}
.check-img{
.check-img {
width: 50rpx;
height: 50rpx;
margin: 0 22rpx;
}
.check-text{
.check-text-view {
width: 400rpx;
height: 100%;
display: flex;
flex-direction: column;
/* justify-content: center; */
.check-weight{
justify-content: center;
.check-weight {
font-weight: 800;
font-size: 29rpx;
}
.check-text{
.check-text {
font-size: 26rpx;
color: #666666;
}
/* background-color: red; */
}
}
}
@ -2361,4 +2366,254 @@
top: 45%;
left: 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 class="super-card-container">
<scroll-view style="width: 100%;" scroll-with-animation :scroll-left="cardLeft" scroll-x
@scroll="handleTop" :show-scrollbar="false">
<scroll-view style="width: 100%;" scroll-with-animation :scroll-left="cardLeft"
:scroll-x="canmove" @scroll="handleTop" :show-scrollbar="false">
<view style="display: flex;width:4824rpx;">
<view v-for="(item0,index0) in timearr" :key="index0" class="super-card-right">
<view class="super-card-time">
@ -34,7 +34,7 @@
<view style="display: flex;height: 1225rpx;position: relative;">
<view class="xian-bian"></view>
<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">
<view style="display: flex;height: 100%;">
<view v-for="(item0,index0) in timearr" :key="index0">
@ -47,18 +47,6 @@
:id="`a${index0}_${index1}`" style="position: relative;"
@click="rulerTouchClick(item1,index0,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"
v-show="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && isRule">
<image class="blue-img" lazy-load
@ -89,16 +77,8 @@
</text>
{{ item1.endTime }}
</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>
@ -120,7 +100,8 @@
<view class="blue-font">
情绪标签
</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>
@ -181,14 +162,14 @@
</view>
<image class="check-img"
:src="serverUrl + (item.izSelected==`Y`?item.picFocus: item.pic)" />
<view class="check-text">
<view class="check-text-view">
<view class="check-weight"
:style="item.izSelected==`Y`?{color:`#0074E1`}: {}">
{{ item.tagName }}
</view>
<view class="check-text"
:style="item.izSelected==`Y`?{color:`#0074E1`}: {}">
四肢承伸直且僵硬无法弯曲状标识要区分为左右和手脚
{{ item.describ }}
</view>
</view>
</view>
@ -199,7 +180,103 @@
</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>
@ -259,39 +336,7 @@
</view>
</view>
</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 class="move-view" v-show="moveopen"></view> -->
<!-- 分享的弹出层 -->
<view v-show="shareShow" class="popup-share" @click="shareShow=false">
<view class="popup-share-content" :style="{ opacity: deletedownisopacity ? 1 : 0 }" @click.stop>
@ -355,6 +400,7 @@
</view>
</view>
</view>
<errorshow :show="openerror" :font="errshow" @close="openerror=false" />
</view>
</template>
@ -369,15 +415,45 @@
type: Boolean,
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 bodystatus = ref(false);
const bodystatustarget = ref(-1);
const facestatus = ref(false);
const facestatustarget = ref(-1);
const menutype = ref(0)
const menutype = ref(0);
const servertype = ref(0);
const settingopen = ref(false);
const explainopen = ref(false);
/* ---- transform ----
注意虽然这是响应式但我们只在 rAF 里更新它受控更新避免频繁触发 Vue 渲染 */
@ -469,6 +545,7 @@
const downList = ref<any>()
const isop = ref(false);
const bigArray = ref([]);
const smallArray = ref([]);
const isopen = ref(false)
const songisopen = ref(false)
const isopacity = ref(false)
@ -477,10 +554,6 @@
const deleteisopen = ref(false);
const deletename = ref("")
const deleteisopacity = ref(false)
//
const sayisopen = ref(false);
const sayname = ref("")
const sayisopacity = ref(false)
const saveleft = ref(6);
const saveright = ref(11);
@ -499,6 +572,11 @@
return "right-top"
}
})
//
const cleanallopen = () => {
settingopen.value = false;
explainopen.value = false;
}
//
const secondtemp = ref([])
//
@ -513,7 +591,7 @@
if (now - lastTap.value < DOUBLE_TAP_DELAY) {
//
thirdmenuIndex.value = e
addnew()
// addnew()
//
lastTap.value = 0
} else {
@ -617,31 +695,24 @@
}
//
const changLeft = (index : number) => {
if (index === 5) {
uni.navigateTo({
url: "/pages/watch/full"
})
cleanallopen()
if (upmenuIndex.value === index) {
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
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 changecard = () => {
@ -854,9 +925,9 @@
]);
//
const upmenuIndex = ref<number>(1);
const downmenuIndex = ref<number>(0);
const downdonghua = ref(-1);
const thirdmenuIndex = ref<number>(0);
const downmenuIndex = ref<number>(1);
const downdonghua = ref(1);
const thirdmenuIndex = ref<number>(1);
const forthmenuIndex = ref<number>(0);
const clickzhilingbao = (e : number) => {
@ -879,18 +950,19 @@
})
const secondContant = (index : number) => {
iszhouqi.value = false;
weekIndex.value = -1;
monthIndex.value = -1;
weekValue.value = "";
monthValue.value = "";
cleanallopen()
if (downmenuIndex.value === index) {
return
}
// iszhouqi.value = false;
// weekIndex.value = -1;
// monthIndex.value = -1;
// weekValue.value = "";
// monthValue.value = "";
downmenuIndex.value = index;
downdonghua.value = index;
// downdonghua.value = index;
thirdmenuIndex.value = 0;
firsttop.value = 0.01;
nextTick(() => {
firsttop.value = 0;
})
}
const timer = ref(null);//
@ -918,6 +990,11 @@
}, 100)
}
const jumpToWatch = () => {
uni.navigateTo({
url: "/pages/watch/full"
})
}
const clickshare = () => {
uni.share({
provider: "weixin",
@ -938,55 +1015,60 @@
const jiao = ref([false, false])
//
const showDetail = ref([-1, -1])
//
const ruleritem = ref({})
const rulerTouchClick = (item : any, index0 : number, index1 : number) => {
isDelete.value = false;
// isDelete.value = false;
saveEditIndex.value.index0 = index0;
saveEditIndex.value.index1 = index1;
centerCell();
isRule.value = true;
setTimeout(() => {
if (item.directiveName && open.value) {
touchindex1.value = index1;
const query = uni.createSelectorQuery()
query
.selectAll('.super-card-time-card')
.boundingClientRect((data : any) => {
data.forEach(async (res : any) => {
//
if (res.left > 100 && res.left < 1067 && res.top < 670 && res.top > 50 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
if (res.left > 100 && res.left < 500) {
//
openX.value = Math.floor(res.left) + 528;
jiao.value[0] = true
} else {
openX.value = Math.floor(res.left) - 18
jiao.value[0] = false
}
if (res.top > 300) {
//
openY.value = Math.floor(res.top) + 100;
jiao.value[1] = true
} else {
openY.value = Math.floor(res.top) + 180
jiao.value[1] = false
}
await nextTick()
isopen.value = true;
ruleritem.value = item;
console.log("点击表格",item)
// isRule.value = true;
// setTimeout(() => {
// if (item.directiveName && open.value) {
// touchindex1.value = index1;
// const query = uni.createSelectorQuery()
// query
// .selectAll('.super-card-time-card')
// .boundingClientRect((data : any) => {
// data.forEach(async (res : any) => {
// //
// if (res.left > 100 && res.left < 1067 && res.top < 670 && res.top > 50 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
// if (res.left > 100 && res.left < 500) {
// //
// openX.value = Math.floor(res.left) + 528;
// jiao.value[0] = true
// } else {
// openX.value = Math.floor(res.left) - 18
// jiao.value[0] = false
// }
// if (res.top > 300) {
// //
// openY.value = Math.floor(res.top) + 100;
// jiao.value[1] = true
// } else {
// openY.value = Math.floor(res.top) + 180
// jiao.value[1] = false
// }
// await nextTick()
// isopen.value = true;
showDetail.value[0] = index0;
showDetail.value[1] = index1;
// console.log("shaa",timearr.value[showDetail.value[0]]?.children[showDetail.value[1]]?.izPackage)
isopacity.value = false;
//
setTimeout(() => {
isopacity.value = true;
}, 100)
}
})
})
.exec()
}
}, 400)
// showDetail.value[0] = index0;
// showDetail.value[1] = index1;
// // console.log("shaa",timearr.value[showDetail.value[0]]?.children[showDetail.value[1]]?.izPackage)
// isopacity.value = false;
// //
// setTimeout(() => {
// isopacity.value = true;
// }, 100)
// }
// })
// })
// .exec()
// }
// }, 400)
}
const shakyTable = ref(false);
const reldata = ref([]);
@ -1033,13 +1115,7 @@
}
const indexsave = ref([-1, -1]);
const opensay = () => {
sayisopacity.value = false;
sayisopen.value = true;
setTimeout(() => {
sayisopacity.value = true
}, 50)
}
const buttonBlue = ref(false)
let animTimer = null
@ -1413,7 +1489,7 @@
const geteverything = () => {
if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) {
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) => ({
positioning: hour.toString(),
children: minuteArr.map(time => ({
@ -1447,13 +1523,14 @@
}
}
const savePackagelist = ref([]);
onMounted(() => {
savePackagelist.value = uni.getStorageSync('Packagelist') || []
let res = uni.getStorageSync('saveTree0')
console.log("00000", res)
let goodArray = []
myArray.forEach((element : any) => {
element.children.forEach((element1 : any) => {
element?.children.forEach((element1 : any) => {
goodArray.push({
name: element1.title,
url: element1.url,
@ -1461,8 +1538,63 @@
})
})
secondtemp.value = goodArray
if (res.result) {
res.result.forEach((element : any) => {
let data0 = res.result.fwzl
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') {
doctorsayList.value.forEach((res : any) => {
if (res.name == element.title) {
@ -1472,7 +1604,7 @@
} else {
element.url = element.animationPath
}
element.children.forEach((res1 : any) => {
element?.children.forEach((res1 : any) => {
if (res1.netFlag == '0') {
secondtemp.value.forEach((res2 : any) => {
if (res2.name == res1.title) {
@ -1485,15 +1617,12 @@
})
})
bigArray.value = res.result;
downList.value = bigArray.value[0].children
smallArray.value = data1;
}
upmenuIndex.value = -1;
downdonghua.value = -1;
setTimeout(() => {
upmenuIndex.value = 0;
downdonghua.value = 0;
downmenuIndex.value = 0;
thirdmenuIndex.value = 0;
}, 50)
uni.$on('where', findback);
downdonghua.value = 0;
@ -1518,6 +1647,9 @@
const listsave = ref([])
const clickopen = () => {
if (!settingopen.value) {
cleanallopen()
}
settingopen.value = !settingopen.value;
if (settingopen.value) {
bodyTagListLooksave.value = JSON.parse(JSON.stringify(bodyTagList.value));
@ -1552,6 +1684,10 @@
}
listsave.value = data
}
const openserver = (index : number) => {
servertype.value = index
}
const cansumit = ref(false);
onBeforeUnmount(() => {
@ -1620,6 +1756,264 @@
forthmenuIndex.value = 0;
}
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>
<style lang="less" scoped>

View File

@ -1,21 +1,39 @@
<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>
<!-- 主页 -->
<!-- <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')" />
<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')" />
<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')" />
<!-- 医嘱页 -->
<!-- <logistics :isShow="menuIndexshowfourth" v-if="menuIndex==3" /> -->
<requestform :isShow="menuIndex==4" v-if="swipedex==4" />
@ -31,46 +49,47 @@
<script setup lang="ts">
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 newnurse from "./component/nurse/newindex.vue"
import equipment from "./component/equipment.vue"
import logistics from "./component/logistics/index.vue"
import invoicing from "./component/invoicing/index.vue"
import requestform from "./component/pleasetake/takehome.vue"
import doctorask from "./component/doctorask/doctorask.vue"
// import nurse from "./component/nurse/index.vue"
import bignurse from "./component/nurse/bigindex.vue"
import { onBackPress,onShow } from '@dcloudio/uni-app';
import { getNcPackagelist } from './component/nurse/api.js'
import { onBackPress, onShow } from '@dcloudio/uni-app';
import { getNcPackagelist } from './component/nurse/api.js'
import leftcontent from "./component/leftcontent/leftcontent.vue"
import defaultr from '@/pages/procurement/components/default.vue';
onBackPress(() => {
if(specialPage.value){
specialPage.value --
if (specialPage.value) {
specialPage.value--
return true; //
}else{
} else {
return false; //
}
})
const listarr = ref([]);
onMounted(() => {
menuIndex.value = 0;
swipedex.value = 0;
swipedex.value = 0;
// getNcPackagelist().then((res : any) => {
// //
// uni.setStorageSync("Packagelist", res.result)
// })
getPermissionList({employessId:uni.getStorageSync('userInfo').employessId}).then(res=>{
listarr.value = res.result ;
getPermissionList({ employessId: uni.getStorageSync('userInfo').employessId }).then(res => {
listarr.value = res.result;
console.log("这个是啥",listarr.value)
})
})
const gospecial = (index:number) => {
const gospecial = (index : number) => {
specialPage.value = index
}
//
@ -83,131 +102,133 @@
})
}
const tabbrarr = ref([
{ 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/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/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/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' },
])
const specialPage = ref(0)
const navurl = (e,v) => {
const navurl = (e, v) => {
swipedex.value = -1;
specialPage.value = 0
switch (v.type){
switch (v.type) {
case 'hldy':
swipedex.value = 0;
setTimeout(()=>{
menuIndex.value = 0;
},100)
// console.log('')
swipedex.value = 0;
setTimeout(() => {
menuIndex.value = 0;
}, 100)
// console.log('')
break;
case 'kzgn_hljz':
swipedex.value = 1;
setTimeout(()=>{
menuIndex.value =1;
},100)
// console.log('')
swipedex.value = 1;
setTimeout(() => {
menuIndex.value = 1;
}, 100)
// console.log('')
break;
case 'kzgn_yljz':
swipedex.value = 2;
setTimeout(()=>{
menuIndex.value = 2;
},100)
// console.log('')
swipedex.value = 2;
setTimeout(() => {
menuIndex.value = 2;
}, 100)
// console.log('')
break;
case 'kzgn_hqjz':
swipedex.value = 3;
setTimeout(()=>{
menuIndex.value = 3;
},100)
// console.log('')
swipedex.value = 3;
setTimeout(() => {
menuIndex.value = 3;
}, 100)
// console.log('')
break;
case 'kzgn_kfjz':
swipedex.value = 6;
setTimeout(()=>{
menuIndex.value = 6;
},100)
//console.log('')
swipedex.value = 6;
setTimeout(() => {
menuIndex.value = 6;
}, 100)
//console.log('')
break;
case 'kf_cg':
//console.log('')
//console.log('')
break;
case 'kf_jh':
//console.log('')
//console.log('')
break;
case 'kf_wj':
//console.log('')
//console.log('')
break;
case 'hldy_ql':
swipedex.value = 4;
setTimeout(()=>{
menuIndex.value = 4;
},100)
//console.log('')
swipedex.value = 4;
setTimeout(() => {
menuIndex.value = 4;
}, 100)
//console.log('')
break;
case 'kf_th':
//console.log('退')
//console.log('退')
break;
case 'kf_pd':
//console.log('')
//console.log('')
break;
case 'wl':
swipedex.value = 5;
setTimeout(()=>{
menuIndex.value = 5;
},100)
//console.log('')
swipedex.value = 5;
setTimeout(() => {
menuIndex.value = 5;
}, 100)
//console.log('')
break;
case 'back':
uni.navigateBack()
//console.log('')
uni.navigateBack()
//console.log('')
break;
default:
break;
}
//
}
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 arrs = [];
listarr.value.forEach(item=>{
if(item.nuId == nuId){
listarr.value.forEach(item => {
if (item.nuId == nuId) {
arrs = item.dataList
}
})
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;
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 = [];
if(arr){
arr.forEach((v,i)=>{
let obj = arrs.find(item=>
// console.log("xxxx",arr)
if (arr) {
arr.forEach((v, i) => {
let obj = arrs.find(item =>
item.menuCode == v.menuCode
);
if(obj){
if (obj) {
tbr.push(v);
}
})
tbr.forEach(item=>{
let obj = tabbrarr.value.find(r=>
tbr.forEach(item => {
let obj = tabbrarr.value.find(r =>
r.type == item.menuCode
);
if(obj){
if (obj) {
arrlist.value.push(obj);
}
})
})
}
let back =[
{ 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/f0.png', urls: '/static/shouye/sy/f1.png' ,type:'back'}
let back = [
{ 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/f0.png', urls: '/static/shouye/sy/f1.png', type: 'back' }
]
arrlist.value.push(...back);
// navurl(0,arrlist.value[0])
@ -232,7 +253,7 @@
menuIndexshowsecond.value = false
menuIndexshowfourth.value = false;
menuIndexshowfifth.value = false
if (index === arrlist.value.length-1) {
if (index === arrlist.value.length - 1) {
uni.navigateBack()
return
}
@ -258,7 +279,7 @@
case 5:
menuIndexshowfourth.value = true
break;
default:
}
}, 50)
@ -266,7 +287,7 @@
const clientX = ref(0);
const clientY = ref(0);
const savename = ref("")
const canmove = ref(true)
//
onMounted(() => {
@ -290,25 +311,152 @@
}, 200)
}
const userInfo = ref({})
onShow(()=>{
onShow(() => {
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>
<style lang="less" scoped>
.backgroundContainer {
display: flex;
position: relative;
width: 100%;
width: 100vw;
height: 100vh;
background-color: #f5f6fa;
overflow: hidden;
z-index: 12;
// margin-top: -35rpx;
z-index: 99;
}
.nomessageclass {
width: 100vw;
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>

View File

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

View File

@ -2,7 +2,7 @@
<template>
<view>
<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 class="home">
<image class="all-home" src="/static/index/warehouse/newindexhome/backdro.jpg" mode="scaleToFill"></image>
@ -159,7 +159,7 @@
// console.log("zzzzzzzzzzzzzzzzzzzzzzzzzzzz")
queryPadPageList().then((res => {
leftMenuArray.value = res.result.records;
// console.log("????111111111111", leftMenuArray.value)
console.log("????111111111111", leftMenuArray.value)
}))
fontnumber.value = uni.getStorageSync('orgListName');
queryDepartTreeSync().then(res => {

View File

@ -1,6 +1,6 @@
// 全局请求封装
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 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",
"name": "护理单元",
"version": {
"name": "1.0.024",
"code": 10024
"name": "1.0.026",
"code": 10026
},
"description": "护理单元",
"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

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