对接矩阵接口

This commit is contained in:
Teng 2026-01-07 16:06:12 +08:00
parent c77460ac20
commit 42a3b4d1c0
16 changed files with 9001 additions and 42 deletions

View File

@ -323,7 +323,7 @@
<view class="message-shu"></view>
<image class="message-img" :src="`/static/index/newindex/leftmenu/time.png`" />
{{ uni.getStorageSync('NUall').elderInfo?.startTime }}
{{ uni.getStorageSync('NUall').elderInfo?.checkinTime.replace(/-/g, '.') }}
</view>
<view class="message-bottom" v-if="uni.getStorageSync('NUall').elderInfo?.name">
<view class="bottom-tags">

View File

@ -0,0 +1,96 @@
// 引入 request 文件
import request from '@/request/index.js'
// 以下 api 为博主项目示例,实际与项目相匹配
// 查询服务类型
export const getServiceTree = () => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/getServiceTree`,
method: 'get',
})
}
// 查询表格
export const getNclist = (nuId,elderId) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/getNclist?nuId=${nuId}&elderId=${elderId}`,
method: 'get',
})
}
// 保存表格
export const addBatch = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/addBatch`,
method: 'post',
data: params,
})
}
// 查询指令包
export const getNcPackagelist = (nuId,elderId) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/getNcPackagelist`,
method: 'get',
})
}
// 新增服务指令
export const addDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/addDirective`,
method: 'post',
data: params,
})
}
// 新增即时指令
export const addInstant = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/addInstant`,
method: 'post',
data: params,
})
}
// 新增情绪/体型标签
export const addElderTag = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/addElderTag`,
method: 'post',
data: params,
})
}
// 编排护理流程-删除服务指令
export const deleteDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/deleteDirective`,
method: 'post',
data: params,
})
}
// 编排护理流程-删除即时服务指令
export const deleteInstant = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}//api/pad/invoicing/directive/deleteInstant`,
method: 'post',
data: params,
})
}
// 编排护理流程-删除情绪/体型标签
export const deleteElderTag = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/deleteElderTag`,
method: 'post',
data: params,
})
}
// 编排护理流程-修改服务指令
export const editDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/editDirective`,
method: 'post',
data: params,
})
}

File diff suppressed because it is too large Load Diff

View File

@ -782,6 +782,7 @@
if (timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id) {
deleteDirective(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1]).then((res : any) => {
doChangeNew()
})
} else {
doChangeNew()
@ -1237,6 +1238,7 @@
const reldata = ref([]);
const deleteRuler = (index0 : number, index1 : number) => {
deleteDirective(timearr.value[index0].children[index1]).then((res : any) => {
console.log("删除",res)
if (res.success) {
geteverything()
}
@ -1664,6 +1666,7 @@
const geteverything = () => {
if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) {
getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => {
console.log("啥啊",res)
timearr.value = Array.from({ length: 24 }, (_, hour) => ({
positioning: hour.toString(),
children: minuteArr.map(time => ({
@ -1696,7 +1699,7 @@
const savePackagelist = ref([]);
onMounted(() => {
savePackagelist.value = uni.getStorageSync('Packagelist') || []
let res = uni.getStorageSync('saveTree')
let res = uni.getStorageSync('saveTree2')
let goodArray = []
myArray.forEach((element : any) => {
element.children.forEach((element1 : any) => {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,96 @@
// 引入 request 文件
import request from '@/request/index.js'
// 以下 api 为博主项目示例,实际与项目相匹配
// 查询服务类型
export const getServiceTree = () => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/getServiceTree`,
method: 'get',
})
}
// 查询表格
export const getNclist = (nuId,elderId) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/getNclist?nuId=${nuId}&elderId=${elderId}`,
method: 'get',
})
}
// 保存表格
export const addBatch = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/addBatch`,
method: 'post',
data: params,
})
}
// 查询指令包
export const getNcPackagelist = (nuId,elderId) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/getNcPackagelist`,
method: 'get',
})
}
// 新增服务指令
export const addDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/addDirective`,
method: 'post',
data: params,
})
}
// 新增即时指令
export const addInstant = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/addInstant`,
method: 'post',
data: params,
})
}
// 新增情绪/体型标签
export const addElderTag = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/addElderTag`,
method: 'post',
data: params,
})
}
// 编排护理流程-删除服务指令
export const deleteDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/deleteDirective`,
method: 'post',
data: params,
})
}
// 编排护理流程-删除即时服务指令
export const deleteInstant = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}//api/pad/logistics/directive/deleteInstant`,
method: 'post',
data: params,
})
}
// 编排护理流程-删除情绪/体型标签
export const deleteElderTag = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/deleteElderTag`,
method: 'post',
data: params,
})
}
// 编排护理流程-修改服务指令
export const editDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/editDirective`,
method: 'post',
data: params,
})
}

File diff suppressed because it is too large Load Diff

View File

@ -10,13 +10,27 @@
{{ uni.getStorageSync('nuName')}}
</text>
<view class="right-icons">
<view style="display: flex;align-items: center;margin-right: 25rpx;padding: 0 15rpx;"
<!-- <view style="display: flex;align-items: center;margin-right: 25rpx;padding: 0 15rpx;"
:class="!topindex&&!bodystatus&&!facestatus?'firsttarget':''">
<view class="mark">
<view style="margin-right: 15rpx;">
体型标签:
老人标签:
</view>
<view class="overlay" v-show="openbody" @click="openbody=false"></view>
</view>
<view class="marknone" @click="openbody=!openbody;openface=false">
<view v-if="!bodyTagListLook.length&&!emotionTagListLook.length" style="margin-top: -3rpx;">
未选择
</view>
<view v-for="(item,index) in bodyTagListLook" :key="index">
<image class="tags-img" style="width: 40rpx;height: 40rpx;margin: 0 10rpx;" :src="item" />
</view>
<view v-for="(item,index) in emotionTagListLook" :key="index">
<image class="tags-img" style="width: 40rpx;height: 40rpx;margin: 0 10rpx;" :src="item" />
</view>
</view>
<view class="tri-down" @click="openbody=!openbody;openface=false">
<view class="mark-bgc" v-show="openbody" :style="{opacity:bodydonghua?1:0}" @click.stop>
<view style="margin-top: 40rpx;margin-bottom: 30rpx;;margin-left: 50rpx;font-size: 32rpx;">
<view>
@ -35,19 +49,27 @@
</view>
</view>
</view>
<view style="margin-top: 40rpx;margin-bottom: 30rpx;;margin-left: 50rpx;font-size: 32rpx;">
<view>
情绪标签
</view>
</view>
<view style="display: flex;flex-wrap: wrap;">
<view v-for="(item,index) in emotionTagList" :key="index" @click="addface(index)">
<view class="tags-father" :class="facestatustarget===index?'secondtarget':''">
<image class="tags-img"
:src="item.izSelected==`Y`?item.netPicFocus: item.netPic" />
<view class="tags-font"
:style="item.izSelected==`Y`?{color:`rgb(54, 159, 239)`}:{}">
{{item.tagName}}
</view>
</view>
</view>
</view>
</view>
</view>
<view class="marknone" @click="openbody=!openbody;openface=false">
<view v-if="!bodyTagListLook.length" style="margin-top: -3rpx;">
未选择
</view>
<view v-for="(item,index) in bodyTagListLook" :key="index">
<image class="tags-img" style="width: 40rpx;height: 40rpx;margin: 0 10rpx;" :src="item" />
</view>
</view>
<view class="tri-down" @click="openbody=!openbody;openface=false"></view>
</view>
<view style="display: flex;align-items: center;margin-right: 15rpx;padding: 0 15rpx;"
</view> -->
<!-- <view style="display: flex;align-items: center;margin-right: 15rpx;padding: 0 15rpx;"
:class="topindex===1&&!bodystatus&&!facestatus?'firsttarget':''">
<view class="mark">
情绪标签
@ -82,19 +104,19 @@
</view>
<view class="tri-down" @click="openface=!openface;openbody=false"></view>
</view>
<view class="white-button" :class="topindex===2?'firsttarget':''" @click="routerPush">
</view> -->
<view class="white-button" @click="routerPush">
<image class="white-img" :src="`/static/index/newruler/yulan.png`" />
预览
</view>
<view class="white-button" :class="topindex===3?'firsttarget':''" @click="shareToWeixin">
<!-- <view class="white-button" @click="shareToWeixin">
<image class="white-img" :src="`/static/index/newruler/fenxiang.png`" />
分享
</view>
<view class="white-button" :class="topindex===3?'firsttarget':''" @click="zhilingbao">
<image class="white-img" :src="`/static/index/newruler/fenxiang.png`" />
指令包
</view>
<view class="white-button" @click="changLeft(5)">
<image class="white-img" style="width: 45rpx;height: 45rpx;" :src="`/static/index/newruler/watch.png`" />
监控
</view> -->
</view>
</view>
<view class="doctorsay-container-view">
@ -565,6 +587,7 @@
watch(
() => props.isshow,
(newVal, oldVal) => {
console.log(1111)
//
if (newVal !== oldVal) {
bottomisShaking.value = false
@ -633,7 +656,7 @@
if (targetNumber > 1) {
uni.showToast({
title: "标签最多只能添加两个",
title: "每种标签最多只能添加两个",
icon: 'none',
duration: 3000
})
@ -759,6 +782,7 @@
if (timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id) {
deleteDirective(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1]).then((res : any) => {
doChangeNew()
})
} else {
doChangeNew()
@ -1214,6 +1238,7 @@
const reldata = ref([]);
const deleteRuler = (index0 : number, index1 : number) => {
deleteDirective(timearr.value[index0].children[index1]).then((res : any) => {
console.log("删除",res)
if (res.success) {
geteverything()
}
@ -1641,6 +1666,7 @@
const geteverything = () => {
if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) {
getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => {
console.log("啥啊",res)
timearr.value = Array.from({ length: 24 }, (_, hour) => ({
positioning: hour.toString(),
children: minuteArr.map(time => ({
@ -1673,7 +1699,7 @@
const savePackagelist = ref([]);
onMounted(() => {
savePackagelist.value = uni.getStorageSync('Packagelist') || []
let res = uni.getStorageSync('saveTree')
let res = uni.getStorageSync('saveTree1')
let goodArray = []
myArray.forEach((element : any) => {
element.children.forEach((element1 : any) => {

File diff suppressed because it is too large Load Diff

View File

@ -4,12 +4,24 @@ import request from '@/request/index.js'
// 以下 api 为博主项目示例,实际与项目相匹配
// 查询服务类型
export const getServiceTree = () => {
export const getServiceTree0 = () => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/getServiceTree`,
method: 'get',
})
}
export const getServiceTree1 = () => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/logistics/directive/getServiceTree`,
method: 'get',
})
}
export const getServiceTree2 = () => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/getServiceTree`,
method: 'get',
})
}
// 查询表格
export const getNclist = (nuId,elderId) => {
return request({

View File

@ -1689,7 +1689,7 @@
const savePackagelist = ref([]);
onMounted(() => {
savePackagelist.value = uni.getStorageSync('Packagelist') || []
let res = uni.getStorageSync('saveTree')
let res = uni.getStorageSync('saveTree0')
let goodArray = []
myArray.forEach((element : any) => {
element.children.forEach((element1 : any) => {

View File

@ -0,0 +1,46 @@
// 引入 request 文件
import request from '@/request/index.js'
export const queryOrderList = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/serviceorder/queryOrderList`,
method: 'get',
data: params,
})
}
export const queryOrderInfoList = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/serviceorder/queryOrderInfoList`,
method: 'get',
data: params,
})
}
export const startOrder = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/serviceorder/startOrder`,
method: 'post',
data: params,
})
}
export const endOrder = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/serviceorder/endOrder`,
method: 'post',
data: params,
})
}
export const editSubMp4 = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/serviceorder/editSubMp4`,
method: 'post',
data: params,
})
}
export const editSubPicPath = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/serviceorder/editSubPicPath`,
method: 'post',
data: params,
})
}

View File

@ -0,0 +1,807 @@
<template>
<view>
<view class="t-box">
<view class="leftscr">
<view class="left-menu-father">
<scroll-view scroll-y="true" scroll-with-animation class="left-menu-scroll" :scroll-top="leftscrolltop"
:lower-threshold="400">
<view class="card" v-for="(v,i) in plsbuy" :key="i" :class="i==lefttarget?'act':''"
@click="clickLeftMenu(i,v)">
<view class="rad" v-if="v.izPackage=='Y'"></view>
<view class="cont">
<view class="conle">
<image :src="serverUrl + v.previewFileSmall" mode="aspectFill" />
</view>
<view class="ritcon">
<view class="rq" >
<text>{{v.directiveName}}</text>
</view>
<view class="rq">
执行人:{{v.employeeName}}
</view>
<view class="rq">
开始时间:{{v.startTime.slice(0,16)}}
</view>
<view class="rq">
结束时间:{{v.endTime.slice(0,16)}}
</view>
<view class="rq">
状态:{{v.izStart=="N"?"未开始":(v.izFinish=="Y"?'已结束':'进行中')}}
</view>
</view>
</view>
</view>
<view style="height:2vw;width: 90%;display: flex;align-items: center;justify-content: center;">
<u-loadmore :status="status" :loadText="{nomore:'暂无更多数据'}" v-if="plsbuy.length>4" />
</view>
</scroll-view>
</view>
</view>
<view class="rightscr">
<scroll-view scroll-y="true" class="itembox" scroll-with-animation enable-back-to-top @scroll="scroll" :scroll-top="middletarget">
<view class="box">
<view class="fler" v-for="(v,index) in cardarr" :key="index">
<view class="carditem guodu" >
<view class="zding" v-if="v.zhiDingId">
<image src="/static/index/procurement/zd.png" mode="aspectFill"></image>
</view>
<view class="speitem guodu" >
<image :src="serverUrl + v.previewFileSmall" mode="aspectFill">
</image>
</view>
<view class="msitem guodu" >
<view>
<view>指令名称{{v.directiveName}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 执行人: </text>
<view>{{v.employeeName}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 开始时间: </text>
<view>{{v.startTime.slice(0,16)}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 结束时间: </text>
<view>{{v.endTime.slice(0,16)}}</view>
</view>
</view>
<view class="fubtn" >
<view class="ld" @click="start(v)" v-if="v.izStart=='N'">开始服务</view>
<view class="ld" v-if="v.izStart=='Y'&& v.izFinish=='N'" @click="end(v)">结束服务</view>
<view class="bd" v-if="(v.izStart=='Y'&& v.izFinish=='N')||v.manuallyMp4Path!=null" @click="ysptp(v,i,2)">录像</view>
<view class="bd" v-if="(v.izStart=='Y'&& v.izFinish=='N')|| v.manuallyPicPath!=null" @click="ysptp(v,i,1)" >拍照</view>
<view class="bd" v-if="(v.izStart=='Y'&& v.izFinish=='Y')&&v.tplinkPath!=null" @click="ysptp(v,i,3)">Tplink</view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<!-- 照片墙 -->
<view class="mengban" v-if="topbuttontarget>0" @click="topbuttontarget=0"></view>
<view class="photowall" v-show="topbuttontarget>0" :style="donghuaopo?{opacity:1}:{opacity:0}">
<view class="photowall-title">
<view class="photowall-name">
{{ topbuttontarget==1?`照片`:`录像` }}
</view>
</view>
<scroll-view scroll-y="true" class="photowall-other" scroll-with-animation enable-flex v-if="topbuttontarget>0">
<view class="photowall-other" >
<view class="photowall-other-one" v-for="(item,index) in ilanarr" :key="index"
@click="previewImage(item,index,ilanarr)">
<view v-if="topbuttontarget==1" style="width: 100%;height: 70%;border-radius: 30rpx;position: relative;">
<image style="width: 100%;height: 100%;border-radius: 30rpx;"
:src="item?serverUrl + item:'/static/ceshiyaoshan.png'" mode="aspectFill"
:lazy-load="true"/>
<view @click.stop="open=1;del(item,index)"
style="width: 1.6vw;
height: 1.6vw;
z-index: 20;
position: absolute;
right: -1vw;
top: -0.7vw;
background: red;
display: flex;
justify-content: center;
border-radius: 50%;
align-items: center;"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
<image src="/static/index/warehouse/procurement/x.png" mode="aspectFill"
style="width: 1.4vw;
height: 1.4vw;"></image>
</view>
</view>
<view v-if="topbuttontarget==2" style="width: 100%;height: 70%;border-radius: 30rpx ;position: relative;" @click="clik(serverUrl + item)">
<video style="width: 100%;height: 100%;border-radius: 30rpx;" :id="'myVideo'+index"
:src="servervideoUrl+item"
mode="aspectFill" ></video>
<view @click.stop="ilanarr.splice(index,1)"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')"
style="width: 1.6vw;
height: 1.6vw;
z-index: 20;
position: absolute;
right: -1vw;
top: -0.7vw;
background: red;
display: flex;
justify-content: center;
border-radius: 50%;
align-items: center;">
<image src="/static/index/warehouse/procurement/x.png" mode="aspectFill"
style="width: 1.4vw;
height: 1.4vw;"></image>
</view>
</view>
<!-- <view style="margin-top: 20rpx;">
<text style="color: #888888;">
上传时间:
</text>
<text style="margin-left: 15rpx;">
{{item.createTime.replace(/-/g, '.')}}
</text>
</view>
<view style="margin-top: 10rpx;">
<text style="color: #888888;letter-spacing: 8.9rpx;">
上传人:
</text>
<text>
{{item.createBy}}
</text>
</view> -->
</view>
<view class="photowall-other-one" v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
<view style="width: 100%;height: 71%;display: flex;flex-direction: column;
justify-content: center;align-items: center;position: absolute;top:0vw;left: 0;
background-color:#fafdff ;border: 1rpx solid #78B1EB;border-radius: 30rpx;" @click="uplod(1)">
<image style="width: 70rpx;height: 70rpx;margin-bottom: 5rpx;"
src="/static/index/warehouse/procurement/picking/addphoto.png" />
<view style="color: #78B1EB;">
点击上传{{topbuttontarget==1?'图片':'录像'}}
</view>
</view>
</view>
<!-- <view class="noarray" v-if="!ilanarr.length">
<image class="noarray-img" src="/static/index/warehouse/procurement/picking/noarray.png"
mode="aspectFill" />
<view class="noarray-font">
暂无照片
</view>
</view> -->
</view>
</scroll-view>
<view style="position: absolute;right: 2vw;bottom: 0.8vw;height: 4vw;" v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
<button type="primary" style="width: 9vw; position: absolute;right: 0vw;bottom: 0.vw;" @click="submit" >确定</button>
</view>
</view>
<tanchuang :show="open==1" font="是否删除此图片" @back="open = 0" @right="del1()"> </tanchuang>
<view class="mengban" style="background: #fff;width:100vw;right:0;left: 0vw;top:-5vw;height: 110vh;" v-if="status=='nomore'&&plsbuy.length==0">
<defaultr cont="暂无数据" style="z-index: 999;margin: auto;top: 0;left:35vw;bottom: 0;right: 0;"></defaultr>
</view>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineComponent } from 'vue';
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import {queryOrderList,queryOrderInfoList,startOrder,endOrder,editSubPicPath,editSubMp4} from './api/api.js'
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
const servervideoUrl = ref(uni.getStorageSync('serverUrl') + '/sys/commonVideo/staticVideo/')
const form = reactive({
pageNo: 1,
pageSize: 10,
employeeId:uni.getStorageSync('userInfo').employessId,
nuId:uni.getStorageSync('nuId')
})
const open = ref(0)
const clik = (e)=>{
console.log(e)
}
const plsbuy = ref([])
onMounted(() => {
form.pageNo=1;
plsbuy.value = [];
firstgetqueryCgdList();
})
const status = ref('loadmore')
const plsbuytolower = () => {
if (status.value == 'loading' || status.value == 'nomore') { return }
status.value = 'loading';
form.pageNo++;
firstgetqueryCgdList();
}
const firstgetqueryCgdList = () => {
queryOrderList(form).then(res => {
console.log(res)
plsbuy.value.push(...res.result.records);
status.value = res.result.total == plsbuy.value.length ? 'nomore' : 'loadmore';
if(form.pageNo==1){
clickLeftMenu(0,plsbuy.value[0])
}
})
}
const lefttarget = ref(0);
const middletarget = ref(0);
const leftscrolltop = ref(0);
const cardarr = ref([])
const clickLeftMenu = (index : any, item : object) => {
console.log(item)
if (lefttarget.value != index) {
middletarget.value = sctop.value;
nextTick(()=>{
middletarget.value = 0;
})
}
let num = Math.ceil((index + 1))
leftscrolltop.value = (num - 2) * 186;
lefttarget.value = index;
queryOrderInfoList({ mainId: item.id }).then(res => {
console.log(res)
cardarr.value = res.result
})
}
const sctop = ref(0)
const scroll = (e)=>{
sctop.value = e.detail.scrollTop
}
const start = (v) =>{
startOrder({id:v.id}).then(res=>{
console.log(res)
if(res.success){
v.izStart = "Y";
plsbuy.value[lefttarget.value].izStart = 'Y';
clickLeftMenu(lefttarget.value,plsbuy.value[lefttarget.value])
}else{
}
})
}
const end = (v)=>{
endOrder({id:v.id}).then(res=>{
if(res.success){
v.izStart = "N";
v.izFinish = "Y";
plsbuy.value[lefttarget.value].izFinish = 'Y';
clickLeftMenu(lefttarget.value,plsbuy.value[lefttarget.value])
}else{
}
})
}
const donghuaopo = ref(false);
const topbuttontarget = ref(0);
const ilanarr = ref([]);
const listobj = ref({})
const ysptp = (v,i,r) =>{
// v.manuallyPicPath
if(r == 1&&v.manuallyPicPath){
ilanarr.value = v.manuallyPicPath.split(",");
ilanarr.value = ilanarr.value.filter(item => item !== '');
}else if(r == 2&&v.manuallyMp4Path){
ilanarr.value = v.manuallyMp4Path.split(",");
ilanarr.value = ilanarr.value.filter(item => item !== '');
}else if(r == 3&&v.tplinkPath){
ilanarr.value = v.tplinkPath.split(",");
ilanarr.value = ilanarr.value.filter(item => item !== '');
}
else{
ilanarr.value = [];
}
listobj.value = v;
topbuttontarget.value = r;
donghuaopo.value = true;
}
const uplod = (v) => {
if(topbuttontarget.value==1){
uni.chooseImage({
count: 1, //9
sizeType: ['compressed'], //
sourceType: ['camera'], //
success: (e) => {
let ar = JSON.stringify(e.tempFilePaths)
uni.compressImage({
src: JSON.parse(ar)[0],
quality: 60,
success: res => {
sxdupld(res.tempFilePath)
// v.picPatharr.push(res.tempFilePath);
// console.log(v.picPatharr)
}
})
}
});
}else{
uni.chooseVideo({
sourceType: ['camera' ],
success: (e)=> {
uni.compressVideo({
src: e.tempFilePath,
quality: 60,
success: res => {
sxdupld(res.tempFilePath)
// v.picPatharr.push(res.tempFilePath);
// console.log(v.picPatharr)
}
})
// sxdupld(res.tempFilePath )
}
});
}
}
const sxdupld = (e) => {
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
uni.uploadFile({
url: uni.getStorageSync('serverUrl') + '/sys/common/upload',
filePath: e,
name: 'file',
fileType:topbuttontarget.value==2?'video':'image',
formData: {
biz: year + '/' + month + (topbuttontarget.value==1?'/fwxm/manuallyPicPath':'/fwxm/manuallyMp4Path')
},
header: {
'X-Access-Token': uni.getStorageSync('token')
},
success: res => {
const data = JSON.parse(res.data);
console.log(data)
ilanarr.value.push(data.message)
},
fail: () => {
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
}
const submit = ()=>{
let sub = "";
ilanarr.value.forEach(item=>{
sub+=item+','
})
if(topbuttontarget.value == 1){
editSubPicPath({id:listobj.value.id,manuallyPicPath:sub}).then(res=>{
if(res.success){
topbuttontarget.value = 0;
donghuaopo.value = false;
clickLeftMenu(lefttarget.value,plsbuy.value[lefttarget.value])
}
})
}else{
editSubMp4({id:listobj.value.id,manuallyMp4Path:sub}).then(res=>{
if(res.success){
topbuttontarget.value = 0;
donghuaopo.value = false;
clickLeftMenu(lefttarget.value,plsbuy.value[lefttarget.value])
}
})
}
}
const previewImage = (v, i, arr) => {
if(topbuttontarget.value == 1){
let u = []
arr.forEach(e => {
u.push(serverUrl.value + e)
console.log(serverUrl.value + e)
})
uni.previewImage({
current: i,
urls: u,
showmenu: false,
longPressActions: {
itemList: [],
}
})
}
}
const videoContext = ref(null)
const play = (e,i)=>{
videoContext.value = uni.createVideoContext('myVideo'+i);
videoContext.value.play()
}
const pici = ref(0);
const del = (v,i) =>{
pici.value = i;
}
const del1=()=>{
ilanarr.value.splice(pici.value,1);
open.value = 0
}
</script>
<style scoped lang="less">
.noarray {
width: 90%;
height: 100%;
// background-color: red;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.noarray-img {
margin-top: -200rpx;
width: 350rpx;
height: 350rpx;
}
}
.noarray-font {
margin-top: -60rpx;
color: #888888;
font-size: 25rpx;
}
.mengban {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 100;
background: RGBA(239, 240, 244, 0.55);
}
.photowall {
position: fixed;
top: 54%;
left: 50%;
transform: translate(-50%, -50%);
width: 80vw;
height: 83%;
border-radius: 30rpx;
background-color: #fff;
transition: all 0.3s;
z-index: 999;
box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.1);
padding: 0 90rpx;
.photowall-title {
margin-top: 50rpx;
display: flex;
justify-content: space-between;
width: 100%;
margin-bottom: 50rpx;
.photowall-name {
font-size: 38rpx;
// font-weight: 600;
}
.photowall-left {
color: #888888;
}
.photowall-right {
font-size: 30rpx;
font-weight: 600;
}
}
.photowall-other {
width: 76vw;
height: 62vh;
display: flex;
margin-top: 20rpx;
flex-wrap: wrap;
.photowall-other-one {
width: 22vw;
height: 430rpx;
margin-right: 3vw;
margin-bottom: 0%;
border-radius: 30rpx;
display:flex;
position: relative;
video{
width: 100%;
height: 100%;
}
}
}
}
.left-menu-father {
width: 33vw;
height: 90vh;
.act {
border: 2px solid #0385FA !important;
background: rgba(255, 255, 255, 1) !important;
}
.left-menu-scroll {
height: 100%;
height: 90vh;
.card {
width: 31vw;
height: 13.6vw;
background: rgba(255, 255, 255, 0.6);
border-radius: 1.6vw;
padding: 1vw 1.4vw;
border: 2px solid rgba(255, 255, 255, 0.01);
margin-bottom: 0.8vw;
position: relative;
.rad {
width: 2.5vw;
height: 2.5vw;
border-radius: 0.5vw;
position: absolute;
right: 1.3vw;
top: 1.5vw;
background: #0385FA;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.6vw;
font-weight: bold;
}
.cont {
width: 100%;
height: 10vw;
display: flex;
justify-content: space-between;
.ritcon {
width: 19vw;
height: 100%;
flex-direction: column;
justify-content: space-around;
flex: 1;
.rq {
font-weight: 400;
font-size: 1.3vw;
color: #888888;
margin-bottom:0.5vw;
white-space: nowrap;
text {
font-size: 1.8vw;
font-weight: bolder;
color: rgba(85, 85, 85, 1);
}
}
}
.conle {
width: 10vw;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
image {
width: 9.3vw;
height: 9.3vw;
margin-top: 1vw;
}
view {
font-weight: bold;
font-size: 1.4vw;
color: #555555;
margin-top: 1vw;
}
}
}
.hli {
width: 100%;
height: 2vw;
display: flex;
justify-content: space-between;
align-items: center;
.rig {
width: 3.7vw;
height: 1.6vw;
position: relative;
display: flex;
justify-content: center;
align-items: center;
image {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 1;
}
text {
position: relative;
z-index: 2;
font-weight: 400;
font-size: 1vw;
color: #FFFFFF;
}
}
.lig {
font-weight: 400;
font-size: 1.2vw;
color: #666666;
display: flex;
justify-content: center;
align-items: center;
image {
width: 1.7vw;
height: 1.7vw;
margin-right: 0.4vw;
}
}
}
}
}
}
.fubtn{
width: 8vw;
height: 100%;
position: absolute;
top:0;
left: 35vw;
display: flex;
justify-content: space-around;
flex-direction: column;
align-items: center;
view{
width: 8vw;
height: 3vw;
border-radius: 0.4vw;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.5vw;
font-weight: bold;
}
.ld{
background: #0385FA;
color: #fff;
border: 1px solid #0385FA;
}
.bd{
background: #fff;
color: #0385FA;
border: 1px solid #0385FA;
}
}
.msitem {
width: 18.5vw;
height: 100%;
position: absolute;
top:0;
left: 15vw;
>view {
margin-top: 0vw;
&:nth-child(2),&:nth-child(3),&:nth-child(4) {
display: flex;
margin-top: 0.7vw;
view{
font-size: 1.4vw;
color: #888888;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
text {
font-weight: 400;
font-size: 1.3vw;
color: #777777;
margin-top: 0.25vw;
}
}
&:nth-child(1) {
margin-top: 1.7vw;
view{
width: 100%;
font-weight: bold;
font-size: 1.6vw;
color: #222222;
height: 3vw;
padding-top: 1vw;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
}
}
.zding{
width: 4.6vw;
height: 4.6vw;
position: absolute;
left: 0;
top: 0;
z-index: 11;
image{
width: 100%;
height: 100%;
}
}
.speitem {
width: 14vw;
height: 100%;
display: inline-flex;
flex-direction: column;
position: absolute;
top:0;
left: 0;
>image {
width: 12vw;
height: 12vw;
margin: 1vw auto 0.25vw;
}
}
.itembox{
width: 100%;
height: calc(100vh - 10vw);
padding:1vw 0.5vw 1vw;
background: #fff;
.box{
width: 100%;
display: flex;
flex-wrap: wrap;
}
.fler{
width: 46vw;
min-height: 13vw;
margin-bottom: 0.9vw;
margin-left: 0.5vw;
.carditem{
width: 46vw;
height: 15vw;
background: rgba(245, 246, 248, 1);
border-radius: 1.1vw;
position: relative;
overflow: hidden;
margin: 1vw 0 0vw 1vw;
}
}
}
.t-box {
width: 85vw;
height: calc(90vh);
display: flex;
justify-content: space-between;
margin-top: 5vh;
.rightscr {
width: 50vw;
height: 100%;
background: #fff;
border-radius: 1.6vw;
overflow: hidden;
}
.leftscr {
width: 33.4vw;
height: calc(90vh);
margin-left: 1vw;
}
}
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
</style>

View File

@ -9,6 +9,9 @@
<!-- 医嘱 -->
<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="menuIndexshowfourth" v-if="menuIndex==3" /> -->
<requestform :isShow="menuIndex==4" v-if="swipedex==4" />
@ -27,12 +30,14 @@
import { queryPadPageList ,getPermissionList } from '@/pages/watch/api/lunpan.js'
import index from "./component/index.vue"
import equipment from "./component/equipment.vue"
import logistics from "./component/nurse/logistics.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 { onShow } from '@dcloudio/uni-app';
import { getServiceTree, getNcPackagelist } from './component/nurse/api.js'
import { getNcPackagelist } from './component/nurse/api.js'
import leftcontent from "./component/leftcontent/leftcontent.vue"
import defaultr from '@/pages/procurement/components/default.vue';
@ -40,10 +45,7 @@
onMounted(() => {
menuIndex.value = 0;
swipedex.value = 0;
getServiceTree().then((res : any) => {
//
uni.setStorageSync("saveTree", res)
})
getNcPackagelist().then((res : any) => {
//
uni.setStorageSync("Packagelist", res.result)
@ -101,9 +103,9 @@
console.log('后勤矩阵')
break;
case 'kzgn_kfjz':
swipedex.value = 3;
swipedex.value = 6;
setTimeout(()=>{
menuIndex.value = 3;
menuIndex.value = 6;
},100)
console.log('库房')
break;

View File

@ -13,8 +13,9 @@
<retstock :isShow="menuop == 5" v-if="swipdex == 5"></retstock>
<inventory :isShow="menuop == 6" v-if="swipdex == 6"></inventory>
<nurse :isshow="menuop == 7" v-if="swipdex==7&&uni.getStorageSync('nuId')" />
<doctorask :isshow="menuop == 8" v-if="swipdex==8&&uni.getStorageSync('nuId')" />
<!-- <invoicing :isshow="menuop == 8" v-if="swipdex==8&&uni.getStorageSync('nuId')" /> -->
<logistics :isshow="menuop == 9" v-if="swipdex==9&&uni.getStorageSync('nuId')" />
<invoicing :isshow="menuop == 10" v-if="swipdex==10&&uni.getStorageSync('nuId')" />
</view>
</view>
</view>
@ -35,8 +36,9 @@
import inventory from "@/pages/procurement/inventory.vue";
import retstock from "@/pages/procurement/retstock.vue";
import logistics from "@/pages/NursingNew/component/nurse/logistics.vue"
import doctorask from "@/pages/NursingNew/component/doctorask/doctorask.vue"
// import logistics from "@/pages/NursingNew/component/logistics/index.vue"
import invoicing from "@/pages/NursingNew/component/invoicing/index.vue"
import logistics from "@/pages/NursingNew/component/logistics/index.vue"
import nurse from "@/pages/NursingNew/component/nurse/index.vue"
const tabbrarr = ref([
@ -111,9 +113,9 @@
console.log('护理矩阵')
break;
case 'kzgn_yljz':
swipdex.value = 8;
swipdex.value = 7;
setTimeout(()=>{
menuop.value = 8;
menuop.value = 7;
},100)
console.log('医疗矩阵')
break;
@ -125,9 +127,9 @@
console.log('后勤矩阵')
break;
case 'kzgn_kfjz':
swipdex.value = 7;
swipdex.value = 10;
setTimeout(()=>{
menuop.value =7;
menuop.value =10;
},100)
console.log('库房')
break;

View File

@ -252,6 +252,7 @@
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick } from 'vue';
import { getServiceTree0,getServiceTree1,getServiceTree2 } from '@/pages/NursingNew/component/nurse/api.js'
import { onBackPress, onShow } from "@dcloudio/uni-app"
import { queryPadPageList } from '@/pages/watch/api/lunpan.js'
import ZyUpdate from '@/component/zy-upgrade/zy-upgrade.vue'
@ -439,7 +440,19 @@
onMounted(() => {
playall.value = true;
// ceshi()
//
getServiceTree0().then((res : any) => {
//
uni.setStorageSync("saveTree0", res)
})
getServiceTree1().then((res : any) => {
//
uni.setStorageSync("saveTree1", res)
})
getServiceTree2().then((res : any) => {
//
uni.setStorageSync("saveTree2", res)
})
})