hldy_app_mini/pages/NursingNew/index.vue

314 lines
8.5 KiB
Vue
Raw Normal View History

2025-11-05 15:59:48 +08:00
<template>
2025-12-26 15:15:35 +08:00
<view class="backgroundContainer">
2025-12-30 08:40:09 +08:00
<!-- 左侧菜单 -->
2026-01-09 16:25:02 +08:00
<leftcontent :list="arrlist" @navurl="navurl" :userInfo="userInfo"></leftcontent>
2025-11-05 15:59:48 +08:00
<!-- 主页 -->
2026-01-16 14:28:12 +08:00
<!-- <index :isShow="menuIndex==0" v-if="swipedex==0&&!specialPage" @swip="swip" @gospecial="gospecial" /> -->
2026-01-09 16:23:18 +08:00
<index :isShow="menuIndex==0" v-if="swipedex==0&&!specialPage" @swip="swip" @gospecial="gospecial" />
2026-01-16 14:28:12 +08:00
<!-- 新主页 -->
2026-01-09 16:23:18 +08:00
<bignurse :isshow="menuIndex==0" v-if="swipedex==0&&specialPage==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
2025-11-05 15:59:48 +08:00
<!-- 户嘱页 -->
2026-01-16 14:28:12 +08:00
<newnurse :isshow="menuIndex==1" v-if="swipedex==1&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
2025-12-16 16:54:29 +08:00
<!-- 医嘱 -->
2026-01-05 15:32:51 +08:00
<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')" />
2026-01-07 16:06:12 +08:00
<invoicing :isshow="menuIndex==6" v-if="swipedex==6&&uni.getStorageSync('elderId')&&uni.getStorageSync('nuId')" />
2026-01-05 09:29:43 +08:00
<!-- 医嘱页 -->
<!-- <logistics :isShow="menuIndexshowfourth" v-if="menuIndex==3" /> -->
2026-01-05 15:32:51 +08:00
<requestform :isShow="menuIndex==4" v-if="swipedex==4" />
2026-01-07 11:23:47 +08:00
<!-- 设备页 -->
<equipment :isShow="menuIndex==5" v-if="swipedex==5" />
2025-12-30 08:40:09 +08:00
<!-- 没有数据 -->
<view class="nomessageclass" :style="messageopit?{opacity: `1`}:{opacity: `0`}"
v-if="(menuIndex == 1 || menuIndex == 2) && (!uni.getStorageSync('elderId') ||!uni.getStorageSync('nuId'))">
<defaultr cont="暂无老人入住"></defaultr>
</view>
2025-11-05 15:59:48 +08:00
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue';
2026-01-05 09:29:43 +08:00
import { queryPadPageList ,getPermissionList } from '@/pages/watch/api/lunpan.js'
2025-11-05 15:59:48 +08:00
import index from "./component/index.vue"
2026-01-16 14:28:12 +08:00
import newnurse from "./component/nurse/newindex.vue"
2025-11-05 15:59:48 +08:00
import equipment from "./component/equipment.vue"
2026-01-07 16:06:12 +08:00
import logistics from "./component/logistics/index.vue"
import invoicing from "./component/invoicing/index.vue"
2025-11-27 14:47:04 +08:00
import requestform from "./component/pleasetake/takehome.vue"
2025-12-16 16:54:29 +08:00
import doctorask from "./component/doctorask/doctorask.vue"
2026-01-16 14:28:12 +08:00
// import nurse from "./component/nurse/index.vue"
2026-01-09 16:23:18 +08:00
import bignurse from "./component/nurse/bigindex.vue"
import { onBackPress,onShow } from '@dcloudio/uni-app';
2026-01-07 16:06:12 +08:00
import { getNcPackagelist } from './component/nurse/api.js'
2025-12-25 13:27:31 +08:00
import leftcontent from "./component/leftcontent/leftcontent.vue"
2025-12-30 08:40:09 +08:00
import defaultr from '@/pages/procurement/components/default.vue';
2026-01-09 16:23:18 +08:00
onBackPress(() => {
if(specialPage.value){
specialPage.value --
return true; // 禁止返回手势返回
}else{
return false; // 禁止返回手势返回
}
})
2026-01-05 09:29:43 +08:00
const listarr = ref([]);
2025-11-05 15:59:48 +08:00
onMounted(() => {
2026-01-06 14:15:35 +08:00
menuIndex.value = 0;
2026-01-06 16:37:04 +08:00
swipedex.value = 0;
2026-01-07 16:06:12 +08:00
2025-11-05 15:59:48 +08:00
getNcPackagelist().then((res : any) => {
//缓存指令包
uni.setStorageSync("Packagelist", res.result)
})
2026-01-05 09:29:43 +08:00
getPermissionList({employessId:uni.getStorageSync('userInfo').employessId}).then(res=>{
2026-01-07 11:23:47 +08:00
listarr.value = res.result ;
2026-01-05 09:29:43 +08:00
})
2025-11-05 15:59:48 +08:00
})
2026-01-09 16:23:18 +08:00
const gospecial = (index:number) => {
specialPage.value = index
}
2025-11-05 15:59:48 +08:00
// 通用的生成函数
function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
return Array.from({ length: count }, (_, i) => {
const idx = pad
? String(i + startIndex).padStart(2, '0')
: i + startIndex
return `${base}/${prefix}${idx}.${ext}`
})
}
2025-12-25 13:27:31 +08:00
const tabbrarr = ref([
2026-01-14 15:53:18 +08:00
{ 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'},
2025-12-25 13:27:31 +08:00
])
2026-01-09 16:23:18 +08:00
const specialPage = ref(0)
2026-01-05 09:29:43 +08:00
const navurl = (e,v) => {
2026-01-05 15:32:51 +08:00
swipedex.value = -1;
2026-01-09 16:23:18 +08:00
specialPage.value = 0
2026-01-05 09:29:43 +08:00
switch (v.type){
case 'hldy':
2026-01-05 15:32:51 +08:00
swipedex.value = 0;
setTimeout(()=>{
menuIndex.value = 0;
},100)
2026-01-05 09:29:43 +08:00
console.log('护理单元')
break;
2026-01-07 11:23:47 +08:00
case 'kzgn_hljz':
2026-01-05 15:32:51 +08:00
swipedex.value = 1;
setTimeout(()=>{
menuIndex.value =1;
},100)
2026-01-05 09:29:43 +08:00
console.log('护理矩阵')
break;
2026-01-07 11:23:47 +08:00
case 'kzgn_yljz':
2026-01-05 15:32:51 +08:00
swipedex.value = 2;
setTimeout(()=>{
2026-01-06 14:15:35 +08:00
menuIndex.value = 2;
2026-01-05 15:32:51 +08:00
},100)
2026-01-05 09:29:43 +08:00
console.log('医疗矩阵')
break;
2026-01-07 11:23:47 +08:00
case 'kzgn_hqjz':
2026-01-05 15:32:51 +08:00
swipedex.value = 3;
setTimeout(()=>{
menuIndex.value = 3;
},100)
2026-01-07 11:23:47 +08:00
console.log('后勤矩阵')
2026-01-05 09:29:43 +08:00
break;
2026-01-07 11:23:47 +08:00
case 'kzgn_kfjz':
2026-01-07 16:06:12 +08:00
swipedex.value = 6;
2026-01-07 11:23:47 +08:00
setTimeout(()=>{
2026-01-07 16:06:12 +08:00
menuIndex.value = 6;
2026-01-07 11:23:47 +08:00
},100)
2026-01-05 09:29:43 +08:00
console.log('库房')
break;
case 'kf_cg':
console.log('采购')
break;
case 'kf_jh':
console.log('拣货')
break;
case 'kf_wj':
console.log('完结')
break;
2026-01-05 15:32:51 +08:00
case 'hldy_ql':
swipedex.value = 4;
setTimeout(()=>{
menuIndex.value = 4;
},100)
2026-01-05 09:29:43 +08:00
console.log('请领')
break;
case 'kf_th':
console.log('退货')
break;
case 'kf_pd':
console.log('盘点')
break;
case 'wl':
2026-01-05 15:32:51 +08:00
swipedex.value = 5;
setTimeout(()=>{
menuIndex.value = 5;
},100)
2026-01-05 09:29:43 +08:00
console.log('物联')
break;
case 'back':
uni.navigateBack()
console.log('物联')
break;
default:
break;
}
//
}
2026-01-05 11:01:11 +08:00
const arrlist = ref([
{ name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png' ,type:'hldy'}
])
2026-01-05 09:29:43 +08:00
const swip = ()=>{
2026-01-07 11:23:47 +08:00
let nuId = uni.getStorageSync('nuId');
let arrs = [];
listarr.value.forEach(item=>{
if(item.nuId == nuId){
arrs = item.dataList
}
})
2026-01-05 09:29:43 +08:00
let nuName = uni.getStorageSync('nuName')
2026-01-07 11:23:47 +08:00
2026-01-05 09:29:43 +08:00
queryPadPageList({'pageNo':-1,'nuName':nuName}).then((res => {
let arr = res.result.records[0].permissionList;
2026-01-05 11:01:11 +08:00
arrlist.value = [{ name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png' ,type:'hldy'}];
2026-01-05 09:29:43 +08:00
let tbr = [];
2026-01-05 11:01:11 +08:00
if(arr){
arr.forEach((v,i)=>{
2026-01-07 11:23:47 +08:00
let obj = arrs.find(item=>
2026-01-05 11:01:11 +08:00
item.menuCode == v.menuCode
);
if(obj){
tbr.push(v);
}
})
tbr.forEach(item=>{
let obj = tabbrarr.value.find(r=>
r.type == item.menuCode
);
if(obj){
arrlist.value.push(obj);
}
})
}
2026-01-05 09:29:43 +08:00
let back =[
2026-01-07 11:23:47 +08:00
{ name: '请领', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png' ,type:'hldy_ql'},
2026-01-05 14:28:16 +08:00
{ name: '智慧物联', url: '/static/shouye/sy/g0.png', urls: '/static/shouye/sy/g1.png' ,type:'wl'},
2026-01-05 09:29:43 +08:00
{ name: '返回', url: '/static/shouye/sy/f0.png', urls: '/static/shouye/sy/f1.png' ,type:'back'}
]
arrlist.value.push(...back);
2026-01-06 16:37:04 +08:00
// navurl(0,arrlist.value[0])
2026-01-05 09:29:43 +08:00
}))
2025-12-25 13:27:31 +08:00
}
2025-11-05 15:59:48 +08:00
// 当前选中的菜单索引
const menuIndex = ref<number>(-1);
2026-01-05 15:32:51 +08:00
const swipedex = ref<number>(-1);
2025-11-05 15:59:48 +08:00
const menuIndexshow = ref<boolean>(false);
const menuIndexshowsecond = ref<boolean>(false);
2025-11-26 13:26:22 +08:00
const menuIndexshowfourth = ref<boolean>(false);
2025-11-05 15:59:48 +08:00
const menuIndexshowfifth = ref<boolean>(false);
2025-12-30 08:40:09 +08:00
const messageopit = ref<boolean>(false);
2025-11-05 15:59:48 +08:00
// 变更菜单
const changeMenu = (index : number) => {
2025-12-30 08:40:09 +08:00
if (index === menuIndex.value) {
return
}
2025-11-05 15:59:48 +08:00
menuIndex.value = index;
menuIndexshow.value = false
menuIndexshowsecond.value = false
2025-11-26 13:26:22 +08:00
menuIndexshowfourth.value = false;
2025-11-05 15:59:48 +08:00
menuIndexshowfifth.value = false
2026-01-05 09:29:43 +08:00
if (index === arrlist.value.length-1) {
2025-11-05 15:59:48 +08:00
uni.navigateBack()
return
}
setTimeout(() => {
switch (index) {
case 0:
menuIndexshow.value = true
break;
case 1:
menuIndexshowsecond.value = true
2025-12-30 08:40:09 +08:00
nomesssageshow()
break;
case 2:
2025-11-05 15:59:48 +08:00
2025-12-30 08:40:09 +08:00
nomesssageshow()
2025-11-26 13:26:22 +08:00
break;
case 3:
menuIndexshowfourth.value = true
2025-11-05 15:59:48 +08:00
break;
case 4:
menuIndexshowfifth.value = true;
break;
2026-01-05 09:29:43 +08:00
case 5:
menuIndexshowfourth.value = true
break;
2025-11-05 15:59:48 +08:00
default:
}
}, 50)
};
const clientX = ref(0);
const clientY = ref(0);
const savename = ref("")
const canmove = ref(true)
// 生命周期钩子
onMounted(() => {
//首次加载和跳转回来需要重新做个动画
setTimeout(() => {
changeMenu(menuIndex.value)
}, 50)
menuIndexshow.value = false
setTimeout(() => {
menuIndexshow.value = true
}, 50)
});
2025-12-30 08:40:09 +08:00
const nomesssageshow = () => {
messageopit.value = false;
setTimeout(() => {
messageopit.value = true;
}, 200)
}
2026-01-09 16:25:02 +08:00
const userInfo = ref({})
onShow(()=>{
userInfo.value = uni.getStorageSync('userInfo');
})
2025-11-05 15:59:48 +08:00
</script>
<style lang="less" scoped>
.backgroundContainer {
display: flex;
position: relative;
width: 100%;
height: 100vh;
2026-01-12 17:03:21 +08:00
background-color: #f5f6fa;
2025-11-05 15:59:48 +08:00
overflow: hidden;
z-index: 12;
2026-01-15 15:40:27 +08:00
// margin-top: -35rpx;
2025-11-05 15:59:48 +08:00
}
2025-12-30 08:40:09 +08:00
.nomessageclass {
width: 100vw;
transition: opacity 1s ease;
}
2025-11-05 15:59:48 +08:00
</style>