合并代码

This commit is contained in:
Teng 2026-03-12 17:10:19 +08:00
parent c9d484f7b4
commit 6b68de59a1
10 changed files with 496 additions and 162 deletions

View File

@ -25,14 +25,14 @@ export const getServiceTree2 = () => {
// 查询表格
export const getNclist = (nuId,elderId) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/getNclist?nuId=${nuId}&elderId=${elderId}`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/getNclist?nuId=${nuId}&elderId=${elderId}`,
method: 'get',
})
}
// 保存表格
export const addBatch = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addBatch`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/addBatch`,
method: 'post',
data: params,
})
@ -70,7 +70,7 @@ export const getNcPackagelist = (instructionTagId) => {
// 新增即时指令
export const addInstant = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addInstant`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/addInstant`,
method: 'post',
data: params,
})
@ -79,7 +79,7 @@ export const addInstant = (params) => {
// 新增情绪/体型标签
export const addElderTag = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addElderTag`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/addElderTag`,
method: 'post',
data: params,
})
@ -97,7 +97,7 @@ export const addElderTag = (params) => {
// 编排护理流程-删除即时服务指令
export const deleteInstant = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}//api/pad/care/directive/deleteInstant`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/deleteInstant`,
method: 'post',
data: params,
})
@ -106,7 +106,7 @@ export const deleteInstant = (params) => {
// 编排护理流程-删除情绪/体型标签
export const deleteElderTag = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/deleteElderTag`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/deleteElderTag`,
method: 'post',
data: params,
})
@ -123,7 +123,7 @@ export const deleteElderTag = (params) => {
// 根据日期查询日程表
export const getDirectiveOrders = (date) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/getDirectiveOrders?nuId=${uni.getStorageSync('nuId')}&elderId=${uni.getStorageSync('elderId')}&queryDate=${date}`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/getDirectiveOrders?nuId=${uni.getStorageSync('nuId')}&elderId=${uni.getStorageSync('elderId')}&queryDate=${date}`,
method: 'get',
})
}
@ -131,15 +131,23 @@ export const getDirectiveOrders = (date) => {
// 新增服务指令
export const addDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addDirective`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/addDirective`,
method: 'post',
data: params,
})
}
// // 编排护理流程-修改服务指令
// export const editDirective = (params) => {
// return request({
// url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/editDirective`,
// method: 'post',
// data: params,
// })
// }
// 删除服务指令
export const deleteDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/deleteDirective`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/deleteDirective`,
method: 'post',
data: params,
})
@ -147,7 +155,7 @@ export const deleteDirective = (params) => {
// 修改服务指令
export const editDirective = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/editDirective`,
url: `${uni.getStorageSync('serverUrl')}/api/pad/${uni.getStorageSync('rulerbase')}/directive/editDirective`,
method: 'post',
data: params,
})

View File

@ -666,8 +666,8 @@
.check-box {
margin-left: 52rpx;
width: 32rpx;
height: 32rpx;
width: 38rpx;
height: 38rpx;
border: 2rpx solid #d5d5d5;
border-radius: 12rpx;
@ -675,15 +675,15 @@
align-items: center;
justify-content: center;
font-size: 15rpx;
font-weight: 800;
font-size: 20rpx;
font-weight: 1000;
color: #d5d5d5;
}
.check-box-target {
margin-left: 52rpx;
width: 32rpx;
height: 32rpx;
width: 38rpx;
height: 38rpx;
border: 2rpx solid #0080FC;
border-radius: 12rpx;
@ -691,8 +691,8 @@
align-items: center;
justify-content: center;
font-size: 15rpx;
font-weight: 800;
font-size: 20rpx;
font-weight: 1000;
color: #0080FC;
}
@ -807,7 +807,7 @@
.blue-icon {
position: absolute;
right: 30rpx;
top: 20rpx;
top: 21rpx;
width: 45rpx;
height: 45rpx;
}
@ -1051,7 +1051,7 @@
.card-time {
position: absolute;
bottom: 30rpx;
bottom: 25rpx;
left: 30rpx;
font-size: 30rpx;
}
@ -1283,21 +1283,6 @@
transition: transform 1s cubic-bezier(.2, .9, .3, 1);
position: relative;
.instant-close {
width: 30rpx;
height: 30rpx;
border-radius: 50%;
display: flex;
/* background-color: #0184db; */
justify-content: center;
align-items: center;
position: absolute;
top: 20rpx;
right: 20rpx;
z-index: 10;
color: #fff;
}
.instant-icon {
width: 60rpx;
height: 60rpx;
@ -1314,6 +1299,20 @@
}
}
.instant-close {
width: 30rpx;
height: 30rpx;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 20rpx;
right: 20rpx;
z-index: 10;
color: #fff;
}
/* iOS 风格抖动 */
@keyframes wiggle {
0% {
@ -1340,7 +1339,7 @@
border-radius: 35rpx;
position: relative;
margin-top: 18rpx;
padding-top: 30rpx;
padding-top: 10rpx;
.right-servers {
width: 100%;
@ -1525,7 +1524,7 @@
/* background-color: red; */
.target-blue {
/* color: #0089FE; */
color: #0089FE;
}
.target-shu {
@ -1672,7 +1671,7 @@
.triangle {
position: absolute;
top: -8.34rpx;
right: 250rpx;
right: 280rpx;
width: 0;
height: 0;
border-left: 14.44rpx solid transparent;
@ -1850,6 +1849,21 @@
border-radius: 5rpx;
}
.more-card {
position: absolute;
right: 25rpx;
top: 25rpx;
width: 25rpx;
height: 25rpx;
/* font-size: 24rpx; */
/* display: flex;
justify-content: center;
align-items: center; */
/* background-color: #4690FF; */
/* color: #fff; */
/* border-radius: 5rpx; */
}
.forscroll {
width: 90%;
margin-left: 5%;
@ -1988,6 +2002,8 @@
justify-content: center;
align-items: center;
flex-direction: column;
/* border: 1rpx solid black; */
/* white-space: nowrap; */
/* 不换行 */
/* overflow: hidden; */
@ -2055,7 +2071,7 @@
/* background-color: red; */
.packtarget-blue {
/* color: #0089FE; */
color: #0089FE;
}
.packtarget-shu {
@ -2075,7 +2091,7 @@
.packtarget-detail {
width: 100%;
height: 250rpx;
height: 220rpx;
.detail-father {
display: flex;
@ -2086,7 +2102,7 @@
.details {
height: 125rpx;
height: 110rpx;
min-width: 180rpx;
max-width: 180rpx;
/* border: 1rpx solid black; */
@ -2098,6 +2114,7 @@
/* 不换行 */
/* overflow: hidden; */
font-size: 25rpx;
position: relative;
.detail-icon {
width: 50rpx;
@ -2120,7 +2137,7 @@
.target-edit {
position: absolute;
right: 5rpx;
bottom: 5rpx;
bottom: -20rpx;
width: 130rpx;
height: 60rpx;
display: flex;
@ -2134,37 +2151,42 @@
}
.end-icon {
width: 90rpx;
height: 90rpx;
margin-left: -5rpx;
width: 100rpx;
height: 100rpx;
margin-left: 20rpx;
margin-top: 5rpx;
margin-right: 5rpx;
margin-right: 20rpx;
/* background-color: red; */
}
}
.packtarget-title {
.target-gray {
background-color: #F8F8FA;
border: 1rpx solid #D5D5D5;
display: flex;
height: 35rpx;
width: 100%;
/* align-items: center; */
/* padding: 0 10rpx; */
border-radius: 10rpx;
font-size: 23rpx;
color: #222222;
justify-content: center;
align-items: center;
margin-top: 10rpx;
}
.packtarget-title {
width: 350rpx;
height: 40rpx;
display: flex;
position: relative;
.target-gray {
background-color: #F8F8FA;
border: 1rpx solid #D5D5D5;
display: flex;
height: 100%;
align-items: center;
padding: 0 10rpx;
border-radius: 10rpx;
font-size: 23rpx;
color: #222222;
}
.target-black {
position: absolute;
top: 2.5rpx;
right: 0;
font-size: 29rpx;
left: 0;
font-size: 31rpx;
/* margin-top: 3rpx; */
}
@ -2177,11 +2199,18 @@
}
.packtarget-serviceContent {
width: 430rpx;
height: 100rpx;
width: 350rpx;
height: 70rpx;
margin-top: 10rpx;
font-size: 25rpx;
color: #666666;
display: -webkit-box;
/* background-color: red; */
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/* 限制两行 */
overflow: hidden;
text-overflow: ellipsis;
}
/* 隐藏状态 */
@ -2331,8 +2360,89 @@
color: #555555;
}
}
.changerulertype{
.changerulertype {
width: 100%;
height: 125rpx;
/* background-color: red; */
margin-top: 40rpx;
/* height: 125rpx; */
display: flex;
/* align-items: center; */
justify-content: center;
.typeitem {
width: 88%;
height: 70rpx;
background-color: #F2F7FE;
border-radius: 30rpx;
display: flex;
position: relative;
.typeitem-one {
min-width: 20%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
font-size: 29rpx;
z-index: 1;
}
.typeitem-one-blue {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 20%;
border-radius: 40rpx;
background-color: #0089FE;
transition: left 0.3s ease;
}
}
}
.typeitem-all {
display: flex;
width: 100%;
height: 100%;
}
.includestwo-father{
display: flex;
align-items: center;
margin-top: 5rpx;
}
.includestwo {
width: 110rpx;
height: 50rpx;
background-color: #0080FC;
border-radius: 15rpx;
display: flex;
font-size: 23rpx;
justify-content: center;
align-items: center;
color: #fff;
}
.includestwo-detail{
font-size: 25rpx;
margin-left: 10rpx;
}
.includestwo-image{
width: 12rpx;
height: 11rpx;
margin-left: 6rpx;
}
.target-gray-spec{
background-color: #F8F8FA;
border: 1rpx solid #D5D5D5;
display: flex;
height: 35rpx;
/* align-items: center; */
padding: 0 10rpx;
border-radius: 10rpx;
font-size: 25rpx;
color: #222222;
justify-content: center;
align-items: center;
/* margin-top: 10rpx; */
}

View File

@ -61,9 +61,12 @@
<image class="blue-img"
:src="`/static/index/newtarget${timearr[index0]?.children[index1]?.id?`red`:``}.png`" />
</view>
<view class="card-bao" v-if="item1.izPackage==`Y`">
<!-- <view class="card-bao" v-if="item1.izPackage==`Y`">
</view>
</view> -->
<!-- <image class="more-card"
v-if="item1.includesarray && item1.includesarray.length>1"
src="/static/index/manycards.png" /> -->
<view :class="getClass(item1,index0,index1)"
style="font-size: 30rpx;overflow: hidden;"
:style="{ animationDelay:`-${computeDelay(index0, index1).toFixed(2)}s`,border:saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && !isTuoing && item1.startTime? `2rpx solid #46B2F6`:'' }">
@ -79,6 +82,16 @@
class="title-time-font-tags">
({{ item1.directiveName?splitString(item1.directiveName)[1]:""}})
</view>
<view class="includestwo-father" v-if="item1.includesarray && item1.includesarray.length>1">
<view class="includestwo">
指令集合
</view>
<view class="includestwo-detail">
详情
</view>
<image class="includestwo-image" src="/static/index/rightmore.png" />
</view>
<view v-if="item1.startTime" class="card-time">
<view class="weight-time">
@ -111,7 +124,7 @@
<view class="blue-font">
情绪标签
</view>
<image class="blue-icon" @click.stop="tagsopen=!tagsopen"
<image class="blue-icon" @click.stop="clicktagsopen()"
src="/static/index/procurement/explain.png" mode="aspectFill"></image>
<view class="blue-text" v-show="tagsopen">
@ -182,17 +195,17 @@
<view :class="item.izSelected==`Y`?`check-box-target`: `check-box`">
</view>
<image class="check-img" :src="
<!-- <image class="check-img" :src="
item.izSelected === 'Y'
? (item.picFocus ? serverUrl + item.picFocus : noimageshowtarget)
: (item.pic ? serverUrl + item.pic : noimageshow)" />
: (item.pic ? serverUrl + item.pic : noimageshow)" /> -->
<image class="check-img" :src="
(item.pic ? serverUrl + item.pic : noimageshow)" />
<view class="check-text-view">
<view class="check-weight"
:style="item.izSelected==`Y`?{color:`#0074E1`}: {}">
<view class="check-weight">
{{ item.tagName }}
</view>
<view class="check-text"
:style="item.izSelected==`Y`?{color:`#0074E1`}: {}">
<view class="check-text">
{{ item.describ }}
</view>
</view>
@ -205,7 +218,7 @@
</view>
</view>
<view class="forfixed" @click.stop>
<view class="forfixed" @click.stop="cleanallopen">
<view class="right-instant" v-show="!openmore"
:style="isblue==`1`&&isTuoing?postitem?.packageName?{border:`4rpx dashed red`}:{border:`4rpx dashed #0089FE`}:{border:`4rpx dashed #fff`}">
<view class="right-instant-title">
@ -214,10 +227,10 @@
即时标签
</view>
</view>
<image class="explain-icon" style="right: 27rpx;" @click.stop="jishiopen=!jishiopen"
<image class="explain-icon" style="right: 27rpx;" @click.stop=" clickjishiopen()"
src="/static/index/procurement/explain.png" mode="aspectFill"></image>
<view class="explain-text" v-show="jishiopen">
<view class="explain-text" v-show="jishiopen" style="top: 70rpx;">
<view class="triangle">
<view class="triangle-small"></view>
</view>
@ -247,7 +260,7 @@
</view>
</view>
</view>
<view class="instant-more" @click="clickopenmore">
<view class="instant-more" @click.stop="clickopenmore">
<image class="more-imge" src="/static/index/down.png" />
</view>
</view>
@ -309,11 +322,17 @@
</view>
</view>
</view>
<view class="right-tree" @click="editopen=false;settingopen = false;">
<view class="right-tree" @click="cleanallopen">
<view class="right-servers">
<view :class="servertype===index?`servertarget`:`server`"
v-show="!ruleritem.directiveName" v-for="(item,index) in [`服务指令`,`服务指令包`]"
:key="index" @click="openserver(index)">
<view class="right-instant-title">
<view class="blue-shu" style="margin-left: 30rpx;"></view>
<view class="blue-font">
服务指令
</view>
</view>
<!-- <view :class="servertype===index?`servertarget`:`server`"
v-show="!ruleritem.directiveName" v-for="(item,index) in [`服务指令`]" :key="index"
@click="openserver(index)">
{{ item }}
</view>
<view class="servers-heng" v-show="!ruleritem.directiveName"
@ -322,23 +341,24 @@
<view class="servertarget" v-show="ruleritem.directiveName && ruleritem.izPackage==`N` "
v-for="(item,index) in [`服务指令`]" :key="index">
{{ item }}
</view>
<view class="servertarget" v-show="ruleritem.directiveName && ruleritem.izPackage==`Y` "
</view> -->
<!-- <view class="servertarget" v-show="ruleritem.directiveName && ruleritem.izPackage==`Y` "
v-for="(item,index) in [`服务指令包`]" :key="index">
{{ item }}
</view>
<view class="servers-heng" :style="ruleritem.izPackage==`Y`?{left:`114rpx`}:{}"
v-show="ruleritem.directiveName"></view>
</view> -->
<!-- <view class="servers-heng" :style="ruleritem.izPackage==`Y`?{left:`114rpx`}:{}"
v-show="ruleritem.directiveName"></view> -->
<image class="explain-icon" @click="explainopen=!explainopen" style="top: 0;"
<image class="explain-icon" @click.stop="clickexplainopen" style="top: 25rpx;" v-if="ruleritem.includesarray?.length !== 1 "
src="/static/index/procurement/explain.png" mode="aspectFill"></image>
<view class="explain-text" v-show="explainopen">
<view class="explain-text" v-show="explainopen" style="top: 78rpx;" :style="ruleritem.includesarray?.length >1?{height:`80rpx`}:{height:`160rpx`}">
<view class="triangle">
<view class="triangle-small"></view>
</view>
<view class="">
双击服务指令可添加矩阵, 长按服务指令可拖动到即时指令区进行添加
{{ ruleritem.includesarray?.length >1?`长按可进行删除操作。`:`双击服务指令可添加矩阵, 长按服务指令可拖动到即时指令区进行添加。` }}
</view>
</view>
</view>
@ -391,7 +411,18 @@
</view>
</view>
<view class="changerulertype" v-show="!ruleritem.directiveName && !servertype">
<scroll-view scroll-x class="typeitem">
<view class="typeitem-all">
<view class="typeitem-one-blue" :style="{left:`${ whitchtype * 20}%`}">
</view>
<view class="typeitem-one" :style="whitchtype===index?{color:`#fff`}:{}"
v-for="(item,index) in typearray" :key="index" @click="clicktype(index)">
{{ item }}
</view>
</view>
</scroll-view>
</view>
<view class="three-items" v-show="!ruleritem.directiveName && servertype"
style="flex-direction: column;margin-left: 25rpx;width: 91.8%;">
@ -450,15 +481,15 @@
</scroll-view>
</view>
<view class="target-items-father"
v-if="ruleritem.directiveName && ruleritem.izPackage==`N`">
v-if="ruleritem.directiveName && ruleritem.includesarray?.length<2">
<view class="target-items">
<view class="target-gray">
<view class="target-gray-spec">
{{ ruleritem.categoryName }}
</view>
<view class="target-shu">
|
</view>
<view class="target-gray">
<view class="target-gray-spec">
{{ ruleritem.typeName }}
</view>
</view>
@ -479,7 +510,11 @@
<view class="target-shu">
|
</view>
<text class="target-blue">
<text v-if="!editingmode">
{{ ruleritem.newtypename }}
</text>
<text class="target-blue" v-else
@click.stop="edititems(ruleritem,false)">
{{ ruleritem.newtypename }}
</text>
<view class="target-shu">
@ -496,38 +531,45 @@
<view class="target-smalltext">
{{ ruleritem.serviceContent }}
</view>
<view class="target-edit" style="right: 150rpx;" @click.stop="editcardname"
<view class="target-edit" style="right: 150rpx;" @click.stop="editcardname(0)"
v-show="editingmode">
修改
添加
</view>
<view class="target-edit" @click.stop="edititems(ruleritem)" v-show="editingmode">
<view class="target-edit" @click.stop="editcardname(1)" v-show="editingmode">
替换
</view>
<!-- <view class="target-edit" @click.stop="edititems(ruleritem,false)" v-show="editingmode">
编辑
</view>
</view> -->
</view>
<view class="target-items-father"
v-if="ruleritem.directiveName && ruleritem.izPackage==`Y`&& ruleritem?.directivesList">
<view class="target-items-father" @click="detailshake=false"
v-if="ruleritem.directiveName && ruleritem.includesarray?.length>1">
<view class="packtargetmessage">
<image class="packtargetmessage-icon" :src=" `/static/index/packtarget.png`"
<!-- <image class="packtargetmessage-icon" :src=" `/static/index/packtarget.png`"
mode="aspectFill" />
<view class="packtarget-font">
{{ ruleritem.directiveName }}
</view>
</view> -->
<view class="packtarget-strart">
{{ ruleritem.startTime }}
{{ ruleritem?.includesarray[packtargetindex]?.startTime }}
</view>
<view class="packtarget-other">
<view class="packtarget-shu">
|
</view>
<text class="packtarget-blue">
{{ ruleritem.newtypename }}
<text v-if="!editingmode">
{{ ruleritem?.includesarray[packtargetindex]?.newtypename }}
</text>
<text class="packtarget-blue" v-else @click.stop="edititems(ruleritem,true)">
{{ ruleritem?.includesarray[packtargetindex]?.newtypename }}
</text>
<view class="packtarget-shu">
|
</view>
<view style="color: #919191;">
{{ ruleritem.serviceDuration }}分钟
{{ ruleritem?.includesarray[packtargetindex]?.serviceDuration }}分钟
</view>
</view>
</view>
@ -535,64 +577,88 @@
<scroll-view class="packtarget-detail" scroll-with-animation :scroll-y="canmovechange">
<view class="detail-father">
<view class="details" :style="packtargetindex==index?{color:`#0089FE`}:{}"
v-for="(item,index) in ruleritem?.directivesList"
@click="packtargetindex=index;killbaddata = true" :key="index">
<image class="detail-icon" :src="
v-for="(item,index) in ruleritem?.includesarray"
@touchstart="startdeletedetail" @touchend="enddeletedetail"
@click.stop="cleanallopen();packtargetindex=index;killbaddata = true" :key="index">
<image class="detail-icon" :class="detailshake?`wiggle`:``" :src="
index === packtargetindex
? (item.immediateFileFocus ? serverUrl + item.immediateFileFocus : noimageshowtarget)
: (item.immediateFile ? serverUrl + item.immediateFile : noimageshow)
" mode="aspectFill">
</image>
<view class="">
{{ splitString(item.directiveName)[0] }}
{{ shortText(item.directiveName,6) }}
</view>
<view style="height: 3rpx;font-size: 20rpx;">
<view class="instant-close" v-show="detailshake"
@click.stop="killinstantopen(item)">
<image style="width: 80%;height: 80%;" src="/static/index/deleticon.png"
mode="aspectFill"></image>
</view>
<!-- <view style="height: 3rpx;font-size: 20rpx;">
{{ splitString(item.directiveName)[1] ? `(${splitString(item.directiveName)[1]})`:``}}
</view>
</view> -->
</view>
</view>
</scroll-view>
<view class="packtarget-heng"></view>
<view class="packtarget-end">
<image class="end-icon" :src="
ruleritem?.directivesList[packtargetindex]?.immediateFile
? serverUrl + ruleritem.directivesList[packtargetindex]?.immediateFile
: noimageshow
" mode="aspectFill">
</image>
<view class="">
<image class="end-icon" :src="
ruleritem?.includesarray[packtargetindex]?.immediateFile
? serverUrl + ruleritem.includesarray[packtargetindex]?.immediateFile
: noimageshow
" mode="aspectFill">
</image>
<view class="target-gray">
{{ ruleritem?.includesarray[packtargetindex]?.categoryName }}
</view>
<view class="target-gray">
{{ ruleritem?.includesarray[packtargetindex]?.typeName }}
</view>
</view>
<view class="">
<view class="packtarget-title">
<view class="target-gray">
{{ ruleritem?.directivesList[packtargetindex]?.categoryName }}
<!-- <view class="target-gray">
{{ ruleritem?.includesarray[packtargetindex]?.categoryName }}
</view>
<view class="target-shu">
|
</view>
<view class="target-gray">
{{ ruleritem?.directivesList[packtargetindex]?.typeName }}
</view>
{{ ruleritem?.includesarray[packtargetindex]?.typeName }}
</view> -->
<view class="target-black">
{{ splitString(ruleritem?.directivesList[packtargetindex]?.directiveName)[0] }}
{{ splitString(ruleritem?.includesarray[packtargetindex]?.directiveName)[0] + (splitString(ruleritem?.includesarray[packtargetindex]?.directiveName)[1]?`(${splitString(ruleritem?.includesarray[packtargetindex]?.directiveName)[1]})`:"") }}
</view>
<view class="target-black"
v-if="splitString(ruleritem?.includesarray[packtargetindex]?.directiveName)[1] ">
</view>
</view>
<view class="packtarget-serviceContent">
{{ ruleritem?.directivesList[packtargetindex]?.serviceContent }}
{{ ruleritem?.includesarray[packtargetindex]?.serviceContent }}
</view>
</view>
<view class="target-edit" style="right: 150rpx;" @click.stop="editcardname"
<!-- <view class="target-edit" style="right: 150rpx;" @click.stop="editcardname(1)"
v-show="editingmode">
修改
</view> -->
<view class="target-edit" @click.stop="editcardname(0)" v-show="editingmode">
添加
</view>
<view class="target-edit" @click.stop="edititems(ruleritem)" v-show="editingmode">
<!-- <view class="target-edit"
@click.stop="edititems(ruleritem?.includesarray[packtargetindex],true)"
v-show="editingmode">
编辑
</view>
</view> -->
</view>
</view>
<view class="edit-open" v-show="editopen" @click.stop>
<view class="edit-menu">
<view class="triangle">
<view class="triangle" v-show="!whitetou">
<view class="triangle-small"></view>
</view>
<view class="edit-tags" :style="edittype===index?{fontWeight:`800`}:{}"
@ -782,7 +848,7 @@
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, onUnmounted } from 'vue';
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, onUnmounted, toRaw } from 'vue';
import { onShow, onHide } from '@dcloudio/uni-app';
import { getNclist, addBatch, addDirective, addInstant, deleteDirective, editDirective } from "./api.js";
import { myArray } from './yaoshandiao.js';
@ -814,6 +880,25 @@
}
});
const typearray = ["护理", "医疗", "后勤", "占位", "占位", "占位"]
const whitchtype = ref(0)
const typebasearray = ["care", "", "invoicing"]
const clicktype = (index : number) => {
if (index < 3) {
whitchtype.value = index
if (typebasearray[index]) {
uni.setStorageSync('rulerbase', typebasearray[index])
init()
}
}
}
const canmovechange = ref(true);
const nextpageing = ref(false)
let nextPageTimer = null
@ -924,13 +1009,14 @@
nosave.value.optCount = ""
}
}
const isclickright = ref(false)
const allisright = () => {
if (isclickright.value) return
//
if (nosave.value.cycleTypeId == `5` && nosave.value.cycleValue) {
nosave.value.cycleValue = Number(inputnum.value).toString()
}
isclickright.value = true
let allobject = ruleritem.value
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')}`;
@ -948,21 +1034,22 @@
optCount: nosave.value.optCount,
optTime: ts,
}
console.log("啥情况", data)
// return
editDirective(data).then((res) => {
console.log("kankan", data, res)
console.log("啥情况", res)
if (res.success) {
geteverything()
setTimeout(() => {
editopen.value = false
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
}, 300)
}
editopen.value = false
isclickright.value = false
})
}
const inputnum = ref(-1)
const inputnum = ref(1)
const secondinstantshow = ref([-1, -1])
const gettop = ref(0)
const clickinstant = (index : number) => {
@ -996,7 +1083,9 @@
cycleValue: "",
optCount: "",
})
const edititems = (item : any) => {
const whitetou = ref(false);
const edititems = (item : any, whitetoushow : boolean) => {
whitetou.value = whitetoushow
nosave.value.cycleTypeId = item.cycleTypeId;
nosave.value.cycleValue = item.cycleValue
nosave.value.optCount = item.optCount
@ -1018,6 +1107,15 @@
}, 1000)
const enddelete = () => clearTimeout(t)
const detailshake = ref(false);
const startdeletedetail = () => t = setTimeout(() => {
if (editingmode.value) {
detailshake.value = true
}
}, 1000)
const enddeletedetail = () => clearTimeout(t)
// startdeletedetail
const addinstantcommand = () => {
if (!postitem.value.packageName) {
const exists = bottomItems.value.some((element : any) => {
@ -1111,7 +1209,11 @@
editopen.value = false;
openmore.value = false;
deleteshake.value = false;
packtargetindex.value = 0
detailshake.value = false;
// packtargetindex.value = 0;
tagsopen.value = false;
jishiopen.value = false;
bodytagtarget.value = {};
}
//
const secondtemp = ref([])
@ -1121,6 +1223,7 @@
const DOUBLE_TAP_DELAY = 300
const clickopenmore = () => {
cleanallopen()
openmore.value = true;
deleteshake.value = false
moreindex.value = -1;
@ -1135,7 +1238,7 @@
}
}
const doChangeNew = () => {
console.log("啥啊")
// console.log("")
let object = postitem.value;
indexsave.value = [Number(props.sendxy[0]), Number(props.sendxy[1])]
// tagName
@ -1444,8 +1547,9 @@
}
//
const ruleritem = ref({})
const editcardname = () => {
const refreshtype = ref(0)
const editcardname = (type : number) => {
refreshtype.value = type
ruleritem.value = {
directiveName: ""
}
@ -1453,6 +1557,7 @@
const packtargetindex = ref(0)
const rulerTouchClick = (item : any, index0 : number, index1 : number) => {
packtargetindex.value = 0
killbaddata.value = true
saveEditIndex.value.index0 = index0;
saveEditIndex.value.index1 = index1;
@ -1478,6 +1583,27 @@
break
}
// console.log("kankan", item.includesarray)
item.includesarray.forEach((element : any) => {
switch (element.cycleTypeId) {
case `1`:
element.newtypename = "每天"
break
case `3`:
element.newtypename = weekDays[Number(element.cycleValue)]
break
case `4`:
element.newtypename = Number(element.cycleValue) + "日"
break
case `5`:
if (element.cycleValue) {
element.newtypename = Number(element.cycleValue) + "天执行一次"
} else {
element.newtypename = "临时一次"
}
break
}
})
cleanallopen()
}
@ -1549,9 +1675,13 @@
const killjishi = () => {
killisopen.value = false;
deleteshake.value = false;
detailshake.value = false;
deleteDirective({ id: killthisid.value.id }).then((res) => {
if (res.success) {
geteverything()
setTimeout(() => {
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
}, 200)
}
})
}
@ -1701,16 +1831,35 @@
// console.log("",uni.getStorageSync('elderId'))
if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) {
getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => {
// console.log("",res)
// console.log("", res.result.serviceList)
timearr.value = Array.from({ length: 24 }, (_, hour) => ({
positioning: hour.toString(),
children: minuteArr.map(time => ({
tagName: time, // '00', '05'
directiveName: '' // directiveName
directiveName: '',// directiveName
includesarray: []
}))
}))
res.result.serviceList.forEach((res : any) => {
timearr.value[res.positioning].children[res.positioningLong] = res;
res.result.serviceList.reverse().forEach((item) => {
const pos = item.positioning
const long = item.positioningLong
if (timearr.value[pos].children[long].directiveName) {
timearr.value[pos].children[long].includesarray.push({
...item
})
// console.log("",timearr.value[pos].children[long].includesarray)
} else {
const clone = { ...item }
clone.includesarray = [{ ...item }]
timearr.value[pos].children[long] = clone
}
})
bottomItems.value = res.result.instantList
// console.log("zzzz",res.result.serviceList)
@ -1736,10 +1885,10 @@
}
const savePackagelist = ref([]);
onMounted(() => {
savePackagelist.value = uni.getStorageSync('Packagelist') || []
// console.log("0000", savePackagelist.value)
let res = uni.getStorageSync('saveTree0')
const init = () => {
// savePackagelist.value = uni.getStorageSync('Packagelist') || []
let res = uni.getStorageSync(`saveTree${whitchtype.value}`)
let goodArray = []
myArray.forEach((element : any) => {
element?.children.forEach((element1 : any) => {
@ -1829,6 +1978,9 @@
})
smallArray.value = data1;
}
upmenuIndex.value = 1;
downmenuIndex.value = 1;
thirdmenuIndex.value = 1;
setTimeout(() => {
upmenuIndex.value = 0;
downmenuIndex.value = 0;
@ -1839,6 +1991,11 @@
nextTick(() => {
timeNowMove()
})
}
onMounted(() => {
uni.setStorageSync('rulerbase', "care")
init()
})
const hournow = ref(new Date().getHours());
//
@ -1883,7 +2040,7 @@
}
const clicktags = () => {
if (editingmode.value) {
if (editingmode.value && !tagsopen.value) {
clickopen()
}
}
@ -2176,7 +2333,10 @@
netPreviewFileSmall: allobject.netPreviewFileSmall,
}
//
timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1] = param;
if (!cardvalue.includesarray.length) {
timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1] = param;
}
// console.log("",param)
let data = {
index0: saveEditIndex.value.index0,
@ -2196,17 +2356,43 @@
cycleTypeId: 1,
}
if (cardvalue.directiveId) {
postdata.id = cardvalue.id,
editDirective(postdata).then((res) => {
if (refreshtype.value) {
postdata.id = cardvalue.id,
editDirective(postdata).then((res) => {
if (res.success) {
geteverything()
setTimeout(() => {
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
}, 300)
}
})
} else {
// console.log("",cardvalue.includesarray,postdata)
// return
const exists = cardvalue.includesarray.some((element : any) => {
return element.directiveId === postdata.directiveId
})
if (exists) {
errshow.value = "请勿添加相同的服务指令"
openerror.value = true
return // return
}
addDirective(postdata).then((res) => {
if (res.success) {
geteverything()
setTimeout(() => {
rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
}, 300)
}
})
}
} else {
console.log("测试新增")
// console.log("")
addDirective(postdata).then((res) => {
if (res.success) {
geteverything()
@ -2281,7 +2467,9 @@
const detailtarget = ref(-1)
const clickbody = (item : any, index : number) => {
if (!editingmode.value) {
cleanallopen()
if (detailtarget.value === index) {
bodytagtarget.value = {};
detailtarget.value = -1
@ -2290,6 +2478,8 @@
detailtarget.value = index
}
} else {
clicktags()
}
}
@ -2306,6 +2496,30 @@
return 79
}
}
const clicktagsopen = () => {
if (!tagsopen.value) {
cleanallopen();
tagsopen.value = true
} else {
cleanallopen();
}
}
const clickjishiopen = () => {
if (!jishiopen.value) {
cleanallopen();
jishiopen.value = true
} else {
cleanallopen();
}
}
const clickexplainopen = () => {
if (!explainopen.value) {
cleanallopen();
explainopen.value = true
} else {
cleanallopen();
}
}
</script>
<style lang="less" scoped>

View File

@ -143,7 +143,7 @@
})
}
const tabbrarr = ref([
{ name: '护理', url: '/static/shouye/sy/n0.png', urls: '/static/shouye/sy/n1.png', type: 'kzgn_hljz' },
{ name: '服务', url: '/static/shouye/sy/n0.png', urls: '/static/shouye/sy/n1.png', type: 'kzgn_hljz' },
{ name: '医疗', url: '/static/shouye/sy/y0.png', urls: '/static/shouye/sy/y1.png', type: 'kzgn_yljz' },
{ name: '后勤', url: '/static/shouye/sy/q0.png', urls: '/static/shouye/sy/q1.png', type: 'kzgn_hqjz' },
{ name: '库房', url: '/static/shouye/sy/l0.png', urls: '/static/shouye/sy/l1.png', type: 'kzgn_kfjz' },
@ -249,7 +249,7 @@
// console.log("???????????????",res.result.records[0].permissionList)
arrlist.value = [{ name: '首页', url: '/static/shouye/sy/h0.png', urls: '/static/shouye/sy/h1.png', type: 'hldy' }];
let tbr = [];
// console.log("xxxx",arr)
console.log("xxxx",res)
if (arr) {
arr.forEach((v, i) => {
let obj = arrs.find(item =>
@ -268,9 +268,10 @@
if (obj) {
arrlist.value.push(obj);
}
})
}
arrlist.value.push(...tabbrarr.value);
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' },

View File

@ -2,7 +2,7 @@
<template>
<view>
<view class="ceshi" v-if="ceshiopen" @click="ceshiopen=false">
<!-- <image class="all-home" src="/static/ceshi6.png" mode="aspectFit"></image> -->
<image class="all-home" src="/static/ceshi7.png" mode="aspectFit"></image>
</view>
<view class="home">
<image class="all-home" src="/static/index/warehouse/newindexhome/backdro.jpg" mode="scaleToFill"></image>
@ -370,9 +370,10 @@
}
const ceshijump = () => {
uni.navigateTo({
url:"/pages/login/ceshi"
})
ceshiopen.value = true
// uni.navigateTo({
// url:"/pages/login/ceshi"
// })
console.log("wtf")
// try {
// const Intent = plus.android.importClass('android.content.Intent')

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

After

Width:  |  Height:  |  Size: 145 KiB

BIN
static/index/manycards.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
static/index/rightmore.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB