This commit is contained in:
wangweidong 2026-01-07 17:15:48 +08:00
commit c9ce3afc86
73 changed files with 9043 additions and 92 deletions

View File

@ -105,8 +105,7 @@
.zy-progress {
overflow: hidden;
height: 28upx;
background-color: #ebeef5;
display: inline-flex;
align-items: center;
width: 100%;
@ -171,7 +170,7 @@
/* ==================
按钮
==================== */
.zy-quxiao{
.zy-quxiao {
height: 90rpx;
width: 200rpx;
/* background: linear-gradient(to right, #00C9FF, #0076FF); */
@ -184,6 +183,7 @@
border: 2rpx solid lightgray;
color: gray;
}
.zy-btn {
height: 90rpx;
width: 200rpx;
@ -472,10 +472,13 @@ button.cuIcon.lg {
.padding-xl {
padding: 20px;
height: 270upx;
background-color: #ebeef5;
}
.padding-top-xs {
padding-top: 10upx;
}
.padding-top-sm {
@ -683,7 +686,7 @@ button.cuIcon.lg {
.zy-bar .action:first-child {
margin-left: 30upx;
font-size: 30upx;
}
.zy-bar .action text.text-cut {

View File

@ -16,7 +16,7 @@
<text class="flex-wrap" style="margin-top: 10rpx;">{{version}}</text>
</view>
<view class="padding-xl bg-white text-left">
<scroll-view class="scroll-box" scroll-y="true" v-if="!update_flag">
<scroll-view class="scroll-box" scroll-y="true">
<text>{{update_tips}}</text>
</scroll-view>
<view class="zy-progress radius striped active" v-if="update_flag">

View File

@ -325,11 +325,17 @@
<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" v-for="(item,index) in tagarray" :key="index">
{{ item }}
<view class="bottom-tags">
{{ uni.getStorageSync('NUall').elderInfo?.yblxName }}
</view>
<view class="bottom-tags" v-show="uni.getStorageSync('NUall').elderInfo?.sndjName" >
{{ uni.getStorageSync('NUall').elderInfo?.sndjName }}
</view>
<view class="bottom-tags" >
{{ uni.getStorageSync('NUall').elderInfo?.jfztName }}
</view>
</view>
</view>
@ -721,7 +727,6 @@
firstgetqueryCgdList(data.nuId);
emit('swip')
}
const tagarray = ["市医保", "半失能", "正常计费"]
function calcAge(dateOfBirth : string) {
const birthYear = parseInt(dateOfBirth?.slice(0, 4), 10);
@ -833,24 +838,7 @@
const transition = ref(false);
watch(
() => props.isShow,
(newVal, oldVal) => {
// falsetrue0.2
if (!oldVal && newVal) {
console.log(oldVal && newVal)
// transition.value = false;
// // console.log("????",transition.value)
// setTimeout(() => {
// transition.value = true;
// // console.log("", uni.getStorageSync('NUall'))
// }, 50)
} else {
transition.value = false;
}
}
)
const name = ref("");
//
@ -897,6 +885,7 @@
}
const getmenu = () => {
queryPadPageList().then((res => {
console.log("看看数据",res.result.records)
leftMenuArray.value = res.result.records;
filteredMenu(0).forEach((element : any, index : number) => {
if (element.nuId === uni.getStorageSync('NUall').nuId) {

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)
})
})

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

View File

@ -7,8 +7,8 @@
"id": "__UNI__FB2D473",
"name": "护理单元",
"version": {
"name": "1.0.021",
"code": 10021
"name": "1.0.022",
"code": 10022
},
"description": "护理单元",
"developer": {
@ -140,7 +140,7 @@
"statusbar": {
"immersed": "supportedDevice",
"style": "dark",
"background": "#F8F8F8"
"background": "#000000"
},
"uniStatistics": {
"enable": false

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

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

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

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__FB2D473","name":"护理单元","version":{"name":"1.0.021","code":10021},"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":"#F8F8F8"},"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.022","code":10022},"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

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB