周五提交

This commit is contained in:
Teng 2025-11-07 17:29:37 +08:00
parent 5ad9994ec9
commit 0d40622e76
21 changed files with 3190 additions and 2638 deletions

View File

@ -918,7 +918,6 @@
openchaobiao.value = true
emit("canback", true)
} else {
getrulevalue()
emit("canback", true)
}
@ -1029,13 +1028,15 @@
const getrulevalue = () => {
rizhivalue.value.pageNo = 1;
relrule.value = []
ruletarget.value = 0
ruletarget.value = 0;
ruletype.value = 0;
if (typeNow.value == 1) {
rizhivalue.value.cid = indexmessage.value.cid;
rizhivalue.value.type = dianrizhi.value[0].type;
electricityMeterListArray(rizhivalue.value).then((element : any) => {
if (element.code == 200) {
relrule.value = element.result.records;
// console.log("????",relrule.value)
openrizhi.value = true
}
})
@ -1046,6 +1047,7 @@
electricityMeterListArray(rizhivalue.value).then((element : any) => {
if (element.code == 200) {
relrule.value = element.result.records;
// console.log("????111",relrule.value)
openrizhi.value = true
}
})
@ -1245,7 +1247,8 @@
}
const chaobiao = () => {
closeall()
closeall();
if (typeNow.value == 1) {
electricityMeteleRead(indexmessage.value.cid, indexmessage.value.address).then((res : any) => {
uni.showToast({

View File

@ -1817,8 +1817,11 @@
top: 220rpx;
left: -17rpx;
width: 60rpx;
height: 1210rpx;
height: 1000rpx;
margin-top: 10rpx;
/* background-color: red; */
overflow: hidden;
z-index: 9999;
/* background: linear-gradient(to bottom, #c4dbf4, #c9c2ef, #c6dcf3); */
/* border-bottom: 2rpx solid #fff; */
/* border-left: 2rpx solid #fff; */
@ -1833,7 +1836,7 @@
}
.boom {
height: 1270rpx;
height: 2500rpx;
display: flex;
flex-direction: column;
/* // justify-content: center; */
@ -2055,8 +2058,8 @@
width: 100%;
height: 100%;
padding: 20rpx;
.specia-title{
.specia-title {
width: 100%;
height: 100rpx;
font-size: 40rpx;
@ -2065,9 +2068,314 @@
justify-content: center;
align-items: center;
}
.specia-cards{
.specia-cards {
width: 100%;
display: flex;
flex-wrap: wrap;
}
}
}
/* 容器默认隐藏,透明度为 0不接受点击 */
.neuro-wrapper {
position: fixed;
inset: 0;
display: flex;
justify-content: center;
align-items: center;
z-index: 999;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
}
/* 显示时透明度过渡到 1可接受点击 */
.neuro-wrapper.is-active {
opacity: 1;
pointer-events: auto;
}
/* 遮罩层,半透明黑色 */
.neuro-mask {
position: absolute;
inset: 0;
background-color: rgba(0, 0, 0, 0.3);
}
/* 拟态框 固定尺寸 + 阴影样式 + 相对定位于 wrapper */
.neuro-box {
position: relative;
width: 600rpx;
height: 450rpx;
border-radius: 30rpx;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
z-index: 1;
padding: 0 5%;
}
.button {
width: 47%;
background-color: #ddf0ff;
display: flex;
justify-content: center;
align-items: center;
color: #007CFF;
border: 1rpx solid #007CFF;
font-size: 25rpx;
border-radius: 30rpx;
}
.title {
margin-top: 70rpx;
font-size: 33rpx;
font-weight: 600;
}
.card-font {
margin-top: 70rpx;
width: 600rpx;
justify-content: center;
display: flex;
}
.button-white {
width: 47%;
border: 2rpx solid #c3cacd;
background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
display: flex;
justify-content: center;
align-items: center;
font-size: 25rpx;
border-radius: 30rpx;
}
.delete-button-father {
position: absolute;
bottom: 60rpx;
left: 50%;
transform: translateX(-50%);
width: 100%;
height: 70rpx;
display: flex;
justify-content: space-between;
padding: 0 50rpx;
}
.right-container-title-nav {
margin-top: 60rpx;
display: flex;
align-items: center;
height: 60rpx;
position: relative;
font-size: 28rpx;
.new-weight {
margin-left: 30rpx;
font-weight: 600;
}
.right-icons {
position: absolute;
right: 0;
top: 0;
display: flex;
align-items: center;
margin-top: -5rpx;
}
}
.white-button {
width: 160rpx;
height: 70rpx;
border-radius: 40rpx;
background-color: #E6E7EB;
margin-left: 20rpx;
margin-top: 10rpx;
display: flex;
justify-content: center;
align-items: center;
.white-img {
width: 35rpx;
height: 35rpx;
margin-right: 10rpx;
}
}
.left-top {
border-top-left-radius: 0 !important;
}
.right-top {
border-top-right-radius: 0 !important;
}
.left-bottom {
border-bottom-left-radius: 0 !important
}
.right-bottom {
border-bottom-right-radius: 0 !important;
}
.mark {
font-size: 29rpx;
position: relative;
}
.marknone {
font-size: 29rpx;
color: #999;
display: flex;
margin-top: 5rpx;
}
.tri-down {
width: 0;
height: 0;
border-left: 10rpx solid transparent;
/* s/2 */
border-right: 10rpx solid transparent;
/* s/2 */
border-top: 17.32rpx solid #999;
/* 0.866 * s */
margin: 0rpx 0rpx 0 15rpx;
}
.mark-bgc {
position: absolute;
top: 50rpx;
left: 0;
width: 450rpx;
background-color: #fff;
z-index: 999;
border-radius: 30rpx;
padding-bottom: 30rpx;
transition: opacity 0.3s ease;
}
.blue-button {
margin-top: 60rpx;
width: 150rpx;
height: 70rpx;
border-radius: 40rpx;
display: flex;
justify-content: center;
align-items: center;
color: #007CFF;
font-size: 30rpx;
background: linear-gradient(to bottom, #e7f4ff, #c5e5ff);
border: 2rpx solid #9AD1FF;
}
.firsttarget {
--color: #99C9FD;
--thick: 2px;
--radius: 50rpx;
--outline-offset: 10rpx;
/* 外扩多少 */
/* 内层虚线(你现在用的) */
border-radius: var(--radius);
/* 内部背景 */
animation: scalePulse 360ms cubic-bezier(.2, .8, .2, 1);
/* 外层虚线:放在 outline不会影响元素尺寸 */
outline: var(--thick) dashed var(--color);
outline-offset: var(--outline-offset);
/* 保证文本 / 子元素在最上层 */
position: relative;
z-index: 999;
}
.secondtarget {
--color: #99C9FD;
--thick: 2px;
--radius: 10rpx;
--outline-offset: 0rpx;
/* 外扩多少 */
/* 内层虚线(你现在用的) */
border-radius: var(--radius);
/* 内部背景 */
animation: scalePulse 360ms cubic-bezier(.2, .8, .2, 1);
/* 外层虚线:放在 outline不会影响元素尺寸 */
outline: var(--thick) dashed var(--color);
outline-offset: var(--outline-offset);
/* 保证文本 / 子元素在最上层 */
position: relative;
z-index: 999;
}
.xian-bian {
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 999;
border-right: 1rpx solid transparent;
border-image: repeating-linear-gradient(180deg, #A9ACB1 0px, #A9ACB1 6rpx, transparent 6rpx, transparent 12rpx) 1;
}
.pulic-time {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #99C9FD;
font-size: 35rpx;
font-weight: 600;
}
.zhiling-card {
width: calc(100% - 20rpx);
height: 200rpx;
background-color: rgba(255, 255, 255, 0.3);
margin-left: 20rpx;
border-radius: 30rpx;
border: 2rpx solid rgb(229, 233, 249);
position: relative;
margin-bottom: 10rpx;
padding: 20rpx 30rpx;
overflow: hidden;
.zhiling-card-button {
position: absolute;
top: 0rpx;
right: 0rpx;
width: 120rpx;
height: 40rpx;
}
.zhiling-card-font {
position: absolute;
top: 0rpx;
right: 0rpx;
width: 120rpx;
height: 40rpx;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
font-size: 24rpx;
}
.bag {
display: flex;
flex-wrap: wrap;
margin-top: 20rpx;
.bag-one {
// margin-right: 10rpx;
}
}
}
.overlay {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.1);
/* 半透明黑色 */
z-index: 998;
}

View File

@ -101,8 +101,8 @@
<view class="doctorsay-container-container">
<view class="super-card">
<view class="boom-father">
<view class="boom">
<view :style="{ marginTop: `-${2 *moveDownNumber}rpx` }">
<view class="boom" :style="{ transform: transformStyle }">
<view>
<view v-for="(item,index) in timearr[0].children" :key="index">
<view class="boom-son" v-show="item.tagName">
<text class="boom-text">
@ -113,6 +113,12 @@
</view>
</view>
</view>
<!-- <view class="boom" :style="{ transform: transformStyle }" ref="leftLabels">
<view v-for="(item, index) in timearr[0].children" :key="index" class="boom-son"
v-show="item.tagName">
<text class="boom-text">{{ item.tagName }}</text>
</view>
</view> -->
</view>
<view class="super-card-container">
@ -153,7 +159,7 @@
请选择服务指令迁移的目标单元格
</view>
<view class="time-button-black-spe"
<!-- <view class="time-button-black-spe"
:style="{left:saveEditIndex.index0?`-220rpx`:`0`}"
v-if="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && index1==0 && isDelete">
是否确认删除该服务指令
@ -164,7 +170,7 @@
v-if="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && index1 && isDelete">
是否确认删除该服务指令
</view>
</view> -->
<view class="title-time-blue"
v-show="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1 && isRule">
</view>
@ -366,6 +372,9 @@
<view class="under-button-black" v-if="isop">
不能重复添加相同的即时服务指令
</view>
<view class="under-button-black" v-if="isempty">
请选择服务指令来进行操作
</view>
<view class="white-circle" @click="changecard">
<image class="white-circle-img"
:src="`/static/index/keyimg/movebutton${isMove ? 'blue' : ''}.png`" />
@ -384,9 +393,8 @@
:src="`/static/index/keyimg/open${open ? 'blue' : ''}.png`" />
</view>
<view style="position: relative;">
<view ref="btnRef" class="white-circle-click-father"
:style="{color:buttonBlue?`#fff`:``}" :class="{ anim: buttonBlue }"
@click="addnewbutton">
<view class="white-circle-click-father" :style="{color:buttonBlue?`#fff`:``}"
:class="{ anim: buttonBlue }" @click="addnewbutton">
<view style="z-index: 999;">
确定
</view>
@ -525,6 +533,45 @@
</view>
</view>
</view>
<view :class="['neuro-wrapper', deletedonghua ? 'is-active' : '']" v-if="isDelete">
<!-- 遮罩层点击触发关闭 -->
<view class="neuro-mask" @click="isDelete=false"></view>
<!-- 拟态框阻止冒泡点击 -->
<view class="neuro-box" @click.stop>
<view class="delete-button-father">
<view class="button-white" @click="isDelete=false">取消</view>
<view class="button" @click="openDelete()">确定</view>
</view>
<view class="title">确定要删除指令吗</view>
<view class="title-time-border-yellow"
style="font-size: 30rpx;overflow: hidden;width: 240rpx;height: 170rpx;">
<view class="title-time" style="flex-direction: column;">
<image style="width: 60rpx;height: 60rpx;margin: 0 auto;margin-top: 10rpx"
:src="timearr[saveEditIndex.index0].children[saveEditIndex.index1].netImmediateFile" />
<view class="title-time-time" style="font-size: 30rpx;">
{{timearr[saveEditIndex.index0].children[saveEditIndex.index1].startTime + `-` + timearr[saveEditIndex.index0].children[saveEditIndex.index1].endTime}}
</view>
<image class="title-time-button" style="width: 80rpx;height: 48rpx;"
v-if="timearr[saveEditIndex.index0].children[saveEditIndex.index1].cycleType!='日常'"
src="/static/index/newruler/jiao.png" />
<view class="title-time-font" style="right: 10rpx;top: 5rpx;font-size: 23rpx;"
v-if="timearr[saveEditIndex.index0].children[saveEditIndex.index1].cycleType!='日常'">
{{ timearr[saveEditIndex.index0].children[saveEditIndex.index1].cycleType == '1' ? '日常' : timearr[saveEditIndex.index0].children[saveEditIndex.index1].cycleType == '2' ? '周期' : '即时' }}
</view>
</view>
<view class="title-time-font-rel">
{{splitString(timearr[saveEditIndex.index0].children[saveEditIndex.index1].directiveName)[0]}}
</view>
</view>
<!-- <view class="card-font">
确定要删除指令吗
</view> -->
</view>
</view>
</view>
</template>
@ -744,6 +791,14 @@
}
}
)
/* ---- transform ----
注意虽然这是响应式但我们只在 rAF 里更新它受控更新避免频繁触发 Vue 渲染 */
const transformStyle = ref('translate3d(0, 0, 0)');
/* rAF / 计数器变量 */
let lastY = 0;
let ticking = false;
const bodydonghua = ref(false)
const openbody = ref(false)
const openface = ref(false)
@ -774,7 +829,7 @@
// console.log("///",bodyTagList.value[index])
// return
bodyTagList.value[index].izSelected = '0';
} else {
let targetNumber = 0;
bodyTagList.value.forEach((element : any) => {
@ -906,6 +961,17 @@
//
const getNew = () => {
if (timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id) {
deleteDirective({ id: timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id }).then((res : any) => {
doChangeNew()
})
} else {
doChangeNew()
}
}
const doChangeNew = () => {
let object = JSON.parse(JSON.stringify(timearr.value[flyNumber.value.index0].children[flyNumber.value.index1]))
indexsave.value = [saveEditIndex.value.index0, saveEditIndex.value.index1]
// tagName
@ -974,6 +1040,7 @@
downList.value = bigArray.value[index]?.children
thirdmenuIndex.value = 0;
}
const isempty = ref(false);
const changecard = () => {
isDelete.value = false;
open.value = false;
@ -985,6 +1052,12 @@
flyNumber.value.index1 = saveEditIndex.value.index1;
isMove.value = true
}
else {
isempty.value = true;
setTimeout(() => {
isempty.value = false;
}, 1500)
}
}
}
@ -1140,10 +1213,17 @@
if (timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].directiveName) {
if (!isDelete.value) {
isDelete.value = true;
setTimeout(() => deletedonghua.value = true, 50)
} else {
isDelete.value = false;
deleteRuler(saveEditIndex.value.index0, saveEditIndex.value.index1);
}
} else {
isempty.value = true;
setTimeout(() => {
isempty.value = false;
}, 1500)
}
}
@ -1168,12 +1248,32 @@
//
let throttleTimer = null;
//
const dragOffset = ref(0);
const moveDownNumber = ref(0)
// const dragOffset = ref(0);
// const moveDownNumber = ref(0)
/* 兼容:如果不支持 requestAnimationFrame就用 setTimeout */
const requestAnimationFrame =
typeof window !== 'undefined' && window.requestAnimationFrame
? window.requestAnimationFrame
: (cb) => setTimeout(cb, 16);
function handleScrolltime(e) {
let num = e.detail.scrollTop
let formattedNum = parseFloat(num.toFixed(2));
moveDownNumber.value = formattedNum
// let num = e.detail.scrollTop
// let formattedNum = parseFloat(num.toFixed(2));
// moveDownNumber.value = formattedNum
// uni-app scroll e.detail.scrollTop
//
const scrollTop = (e && e.detail && (e.detail.scrollTop ?? e.detail.scrollY)) || 0;
lastY = scrollTop;
//
if (!ticking) {
ticking = true;
requestAnimationFrame(() => {
// transform scrollTop
// 使 translate3d GPU
transformStyle.value = `translate3d(0, -${lastY}px, 0)`;
ticking = false;
});
}
}
const leftIn = ref(0)
function handleTop(e) {
@ -1375,7 +1475,7 @@
//
const showDetail = ref([-1, -1])
const rulerTouchClick = (item : any, index0 : number, index1 : number) => {
isDelete.value = false;
saveEditIndex.value.index0 = index0;
saveEditIndex.value.index1 = index1;
centerCell();
@ -1585,8 +1685,24 @@
}
const addnew = () => {
// console.log("9999", timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1])
if (isDelete.value) {
isDelete.value = false;
deleteRuler(saveEditIndex.value.index0, saveEditIndex.value.index1);
return
}
if (isMove.value) {
getNew()
return
}
let haveValue = false;
if (timearr.value[saveEditIndex.value.index0]?.children[saveEditIndex.value.index1].directiveName) {
haveValue = true
}
// return
if (iszhiling.value) {
let allobject = savePackagelist.value[forthmenuIndex.value];
// console.log("special",allobject)
@ -1615,7 +1731,7 @@
const formattedEnd = `${String(endHour)}:${String(endMinute % 60).padStart(2, '0')}`
let param = {
id: "",
id: haveValue ? timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id : "",
nuId: uni.getStorageSync('nuId'),
nuName: uni.getStorageSync('nuName'),
customerId: uni.getStorageSync('customerId'),
@ -1650,12 +1766,23 @@
}
whereEvent(data);
// saveAll()
doaddDirective(param);
if (haveValue) {
editDirective(param).then((res : any) => {
if (res.success) {
geteverything()
}
})
} else {
doaddDirective(param);
}
return
}
let stopIt = false;
let allobject = bigArray.value[upmenuIndex.value].children[downmenuIndex.value].children[thirdmenuIndex.value]
if (allobject.cycleType === "即时护理") {
scrollLeft.value = 1;
bottomItems.value.forEach((element : any, index : number) => {
@ -1673,6 +1800,8 @@
let pushValue = allobject;
pushValue.directiveId = allobject.id;
pushValue.directiveName = allobject.title;
pushValue.serviceDuration = allobject.serviceDuration;
pushValue.target = `#03a4ff`
pushValue.id = ""
pushValue.nuId = uni.getStorageSync('nuId'),
@ -1704,15 +1833,6 @@
if (saveEditIndex.value.index1 === -1 && saveEditIndex.value.index0 === -1) {
return
}
if (isDelete.value) {
isDelete.value = false;
deleteRuler(saveEditIndex.value.index0, saveEditIndex.value.index1);
return
}
if (isMove.value) {
getNew()
return
}
flyNumber.value.index0 = -1;
flyNumber.value.index1 = -1;
isMove.value = false;
@ -1738,10 +1858,12 @@
}
})
cycleValue = cycleTypeIndex.toString()
} else {
cycleType = monthValue.value + "号";
cycleValue = monthValue.value
}
console.log("重要", cycleValue)
iszhouqi.value = false;
weekIndex.value = -1;
monthIndex.value = -1;
@ -1755,6 +1877,7 @@
const formattedStart = `${String(startHour)}:${String(startMinute).padStart(2, '0')}`
const formattedEnd = `${String(endHour)}:${String(endMinute % 60).padStart(2, '0')}`
let param = {
id: haveValue ? timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id : "",
nuId: uni.getStorageSync('nuId'),
nuName: uni.getStorageSync('nuName'),
customerId: uni.getStorageSync('customerId'),
@ -1788,7 +1911,18 @@
index1: saveEditIndex.value.index1
}
whereEvent(data);
doaddDirective(param);
if (haveValue) {
editDirective(param).then((res : any) => {
if (res.success) {
geteverything()
}
})
} else {
doaddDirective(param);
}
}
const cleansettimeout = ref(null);
const cleansettimeoutrel = ref(null);
@ -2001,6 +2135,7 @@
onBeforeUnmount(() => {
if (animTimer) clearTimeout(animTimer)
uni.$off('where', findback);
ticking = false;
})
function findback(data : any) {
@ -2091,225 +2226,10 @@
iszhiling.value = !iszhiling.value
forthmenuIndex.value = 0;
}
const deletedonghua = ref(false);
</script>
<style lang="less" scoped>
// css
@import './index';
.right-container-title-nav {
margin-top: 60rpx;
display: flex;
align-items: center;
height: 60rpx;
position: relative;
font-size: 28rpx;
.new-weight {
margin-left: 30rpx;
font-weight: 600;
}
.right-icons {
position: absolute;
right: 0;
top: 0;
display: flex;
align-items: center;
margin-top: -5rpx;
}
}
.white-button {
width: 160rpx;
height: 70rpx;
border-radius: 40rpx;
background-color: #E6E7EB;
margin-left: 20rpx;
margin-top: 10rpx;
display: flex;
justify-content: center;
align-items: center;
.white-img {
width: 35rpx;
height: 35rpx;
margin-right: 10rpx;
}
}
.left-top {
border-top-left-radius: 0 !important;
}
.right-top {
border-top-right-radius: 0 !important;
}
.left-bottom {
border-bottom-left-radius: 0 !important
}
.right-bottom {
border-bottom-right-radius: 0 !important;
}
.mark {
font-size: 29rpx;
position: relative;
}
.marknone {
font-size: 29rpx;
color: #999;
display: flex;
margin-top: 5rpx;
}
.tri-down {
width: 0;
height: 0;
border-left: 10rpx solid transparent;
/* s/2 */
border-right: 10rpx solid transparent;
/* s/2 */
border-top: 17.32rpx solid #999;
/* 0.866 * s */
margin: 0rpx 0rpx 0 15rpx;
}
.mark-bgc {
position: absolute;
top: 50rpx;
left: 0;
width: 450rpx;
background-color: #fff;
z-index: 999;
border-radius: 30rpx;
padding-bottom: 30rpx;
transition: opacity 0.3s ease;
}
.blue-button {
margin-top: 60rpx;
width: 150rpx;
height: 70rpx;
border-radius: 40rpx;
display: flex;
justify-content: center;
align-items: center;
color: #007CFF;
font-size: 30rpx;
background: linear-gradient(to bottom, #e7f4ff, #c5e5ff);
border: 2rpx solid #9AD1FF;
}
.firsttarget {
--color: #99C9FD;
--thick: 2px;
--radius: 50rpx;
--outline-offset: 10rpx;
/* 外扩多少 */
/* 内层虚线(你现在用的) */
border-radius: var(--radius);
/* 内部背景 */
animation: scalePulse 360ms cubic-bezier(.2, .8, .2, 1);
/* 外层虚线:放在 outline不会影响元素尺寸 */
outline: var(--thick) dashed var(--color);
outline-offset: var(--outline-offset);
/* 保证文本 / 子元素在最上层 */
position: relative;
z-index: 999;
}
.secondtarget {
--color: #99C9FD;
--thick: 2px;
--radius: 10rpx;
--outline-offset: 0rpx;
/* 外扩多少 */
/* 内层虚线(你现在用的) */
border-radius: var(--radius);
/* 内部背景 */
animation: scalePulse 360ms cubic-bezier(.2, .8, .2, 1);
/* 外层虚线:放在 outline不会影响元素尺寸 */
outline: var(--thick) dashed var(--color);
outline-offset: var(--outline-offset);
/* 保证文本 / 子元素在最上层 */
position: relative;
z-index: 999;
}
.xian-bian {
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 999;
border-right: 1rpx solid transparent;
border-image: repeating-linear-gradient(180deg, #A9ACB1 0px, #A9ACB1 6rpx, transparent 6rpx, transparent 12rpx) 1;
}
.pulic-time {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #99C9FD;
font-size: 35rpx;
font-weight: 600;
}
.zhiling-card {
width: calc(100% - 20rpx);
height: 200rpx;
background-color: rgba(255, 255, 255, 0.3);
margin-left: 20rpx;
border-radius: 30rpx;
border: 2rpx solid rgb(229, 233, 249);
position: relative;
margin-bottom: 10rpx;
padding: 20rpx 30rpx;
overflow: hidden;
.zhiling-card-button {
position: absolute;
top: 0rpx;
right: 0rpx;
width: 120rpx;
height: 40rpx;
}
.zhiling-card-font {
position: absolute;
top: 0rpx;
right: 0rpx;
width: 120rpx;
height: 40rpx;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
font-size: 24rpx;
}
.bag {
display: flex;
flex-wrap: wrap;
margin-top: 20rpx;
.bag-one {
// margin-right: 10rpx;
}
}
}
.overlay {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.1);
/* 半透明黑色 */
z-index: 998;
}
</style>

View File

@ -173,14 +173,7 @@
), name: '设备'
},
{
url: genPaths(
'/static/index/newindex/kufang',
'storeroom_',
11, //
'png',
1, // 1
false //
), name: '返回'
url: [`/static/back.png`], name: '返回'
},
// {
// url: genPaths(
@ -193,24 +186,6 @@
// ), name: ''
// },
])
const menuArray = ref([
{ url: '/static/index/lefticon/index.png', name: '首页' },
{ url: '/static/index/lefticon/nurse.png', name: '护嘱' },
{ url: '/static/index/lefticon/doctor.png', name: '医嘱' },
{ url: '/static/index/lefticon/give.png', name: '请领' },
{ url: '/static/index/lefticon/wifi.png', name: '设备' },
{ url: '/static/index/lefticon/back.png', name: '返回' }
])
//
const iconList = ref<Link[]>([
{ url: '/static/index/lefticon/index.png', targetUrl: '/static/index/lefticontarget/blueindex.png' },
{ url: '/static/index/lefticon/nurse.png', targetUrl: '/static/index/lefticontarget/bluenurse.png' },
{ url: '/static/index/lefticon/doctor.png', targetUrl: '/static/index/lefticontarget/bluedoctor.png' },
{ url: '/static/index/lefticon/give.png', targetUrl: '/static/index/lefticontarget/givedark.png' },
{ url: '/static/index/lefticon/wifi.png', targetUrl: '/static/index/lefticontarget/bluewifi.png' },
{ url: '/static/index/lefticon/back.png', targetUrl: '/static/index/lefticontarget/blueback.png' }
]);
//
const menuIndex = ref<number>(-1);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -25,6 +25,14 @@
}
})
const ballarray = ref([
{
name:'返回',
url:""
},
{
name:'详情',
url:""
},
{
name:'周期',
url:""
@ -73,7 +81,7 @@
left: 50%;
transform: translateX(-50%);
width: 100%;
height: 400rpx;
height: 600rpx;
// background-color: red;
display: flex;
flex-wrap: wrap;

View File

@ -125,8 +125,8 @@
position: fixed;
bottom: 0;
right: 0;
height: 40vh;
// background: #eff0f4;
height: 55vh;
// background: red;
z-index: 1000;
border-top-left-radius: 80rpx;
border-bottom-left-radius: 80rpx;

View File

@ -1,40 +1,9 @@
<template>
<view class="doctorsay-container-container">
<!-- <view class="doctorsay-container-title">
<view class="doctorsay-container-left">
<view class="doctorsay-container-left-gun"></view>
<view class="doctorsay-container-left-font">时间矩阵</view>
</view>
<view class="doctorsay-container-right">
<view class="titlebutton-father">
<view v-for="(item,index) in jiajianArray" :key="index">
<view class="titlebutton" @click="changeType(index)">
{{item}}
</view>
</view>
</view>
<view class="titlebutton-father">
<view v-for="(item,index) in buttonArray" :key="index">
<view :class="getClassItem(index)" @click="changeTarget(index)">
{{item}}
</view>
</view>
</view>
<view class="doctorsay-container-right-kuai-cheng"></view>
<view class="doctorsay-container-kuai-font">日常</view>
<view class="doctorsay-container-right-kuai-zi"></view>
<view class="doctorsay-container-kuai-font">周期</view>
<view class="doctorsay-container-juzhen" @click="routerBack">
返回
</view>
</view>
</view> -->
<view class="super-card">
<view class="super-card-container">
<scroll-view style="height: 100%;width: 100%;" :scroll-left="scrollLeft" scroll-x
<scroll-view style="height: 100%;width: 100%;" :scroll-left="scrollLeft" scroll-x scroll-with-animation
:show-scrollbar="false">
<view :style="{width:widthType * 24 + `rpx`}" style="display: flex;">
@ -48,7 +17,7 @@
<view style="display: flex;height: calc(100% - 80rpx);position: relative;"
:style="{width:widthType * 24 + `rpx`}">
<view class="xian-bian"></view>
<scroll-view scroll-y :show-scrollbar="false" :scroll-top="scrollTop">
<scroll-view scroll-y :show-scrollbar="false" :scroll-top="scrollTop" scroll-with-animation>
<view style="display: flex;height: 100%;">
<view v-for="(item0,index0) in changetimearr" :key="index0">
<view class="super-card-time-und" :style="{width:widthType + `rpx`}">
@ -56,9 +25,10 @@
<view v-for="(item1,index1) in item0.children" style="width: 100%;"
:key="index1">
<view :style="{height:heightType + `rpx`}" class="super-card-time-card"
@touchend="handleTap(item1,index0,index1)" :data-index0="index0"
@click="handleTap(item1,index0,index1)" :data-index0="index0"
:data-index1="index1">
<view :class="getClass(item1,index0,index1)" :style="scalcType >= 11 && item1.cycleType !== '日常' && item1.startTime ? { backgroundColor: '#c5e5ff' } : {}"
<view :class="getClass(item1,index0,index1)"
:style="scalcType >= 11 && item1.cycleType !== '日常' && item1.startTime ? { backgroundColor: '#c5e5ff' } : {}"
style="font-size: 30rpx;position: relative;">
<view class="title-time-blue"
v-show="clickX == index0 && clickY == index1">
@ -67,7 +37,7 @@
style="flex-direction: column;overflow: hidden;">
<image v-show="item1.startTime"
style="width: 50rpx;height: 50rpx;margin: 0 auto;"
:src="item1.netImmediateFile" />
:src="item1.netImmediateFile?item1.netImmediateFile:`/static/logo.png`" />
<view class="title-time-time" style="font-size: 30rpx;"
v-show="scalcType<10">
{{item1.startTime + `-` + item1.endTime}}
@ -87,39 +57,11 @@
v-show="scalcType<11">
{{splitString(item1.directiveName)[0]}}
</view>
<!-- <view class="title-time" v-if="item1.startTime"
style="margin-top: 0rpx;">
<view class="title-time-time" style="font-size: 25rpx;"
v-show="scalcType<10">
{{item1.startTime + `-` + item1.endTime}}
</view>
<image class="title-time-button" v-show="scalcType<10"
:src="item1.cycleType=='日常'?`/static/index/yellowbian.png`:`/static/index/puoplebian.png`" />
<view class="title-time-font" v-show="scalcType<10">
{{item1.cycleType}}
</view>
</view> -->
<!-- <view v-show="scalcType>=10" style="margin: auto;"
:style="{fontSize: cardFont + `rpx`}">
{{item1.cycleType}}
<view
v-if="clickX == index0 && clickY == index1 && !item1.startTime"
class="pulic-time">
{{(item0.positioning.length == 1 ? ('0' + item0.positioning) : item0.positioning) + ":" + timeArray[index1]}}
</view>
<view v-show="scalcType<10"
:style="splitString(item1.directiveName)[1] ? {}:{marginTop:`20rpx`}"
style="font-weight: 700;font-size: 24rpx;">
{{splitString(item1.directiveName)[0]}}
</view>
<view class="down-icons" v-show="scalcType<10"
:style="item1.cycleType!='日常'?{backgroundColor:`rgb(212,203,255)`}:{}"
v-if="splitString(item1.directiveName)[1]">
<view class=""
v-for="(item,index) in splitString(item1.directiveName).slice(1)"
:key="index">
<view class="icon"
:style="item1.cycleType!='日常'?{backgroundColor:`rgb(123,97,255)`}:{}">
{{splitString(item1.directiveName)[index + 1]}}
</view>
</view>
</view> -->
</view>
</view>
</view>
@ -140,7 +82,7 @@
</specialDrawerVue>
<!-- 轮盘 -->
<!-- <joystick @movecard="movecard" /> -->
<arrowkeys @movecard="movecard" />
<!-- <arrowkeys @movecard="movecard" /> -->
<!-- 长按的弹出层` -->
<!-- <view v-show="isopen" class="popup-overlay" @click="isopen=false"> -->
<view class="popup-overlay-content" v-show="isopen"
@ -182,6 +124,9 @@
type darkFanstype = {
darkFans : boolean
}
const timeArray = [
`00`, `05`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `45`, `50`, `55`
];
const buttonArray = ref(["全部", "日常", "周期"]);
const jiajianArray = ref(["放大", "缩小"]);
const buttonTarget = ref(0);
@ -218,22 +163,36 @@
const clickball = (index : number) => {
switch (index) {
case 0:
changeTarget(2)
uni.navigateBack()
break
case 1:
changeType(0)
if (clickX.value && clickY.value) {
if(isopen.value){
isopen.value = false
}else{
rulerTouchClick(changetimearr.value[clickX.value].children[clickY.value], clickX.value, clickY.value)
}
}
break
case 2:
changeTarget(1)
changeTarget(2)
break
case 3:
changeType(1)
changeType(0)
break
case 4:
changeTarget(0)
changeTarget(1)
break
case 5:
if (scalcType.value ===7) {
changeType(1)
break
case 6:
changeTarget(0)
break
case 7:
if (scalcType.value === 7) {
changeRuler(false)
} else {
changeRuler(true)
@ -436,7 +395,7 @@
widthType.value = 320;
heightType.value = 256;
break;
}
//
@ -462,29 +421,23 @@
const clickTimer = ref(null)
function handleTap(item : any, index0 : number, index1 : number) {
const now = Date.now()
if(isopen.value){
isopen.value = false
}
//
if (clickTimer.value != null) {
clearTimeout(clickTimer.value)
}
// 250ms
if (now - lastTap.value < 250) {
// message.value = ''
// console.log('')
if (item.startTime) {
closeIsOpen(index0, index1)
}
lastTap.value = 0 //
} else {
// 250ms
// clickTimer.value = setTimeout(() => {
// rulerTouchClick(item, index0, index1, e)
// }, 250)
if (item.directiveName) {
clickX.value = index0;
clickY.value = index1;
}
clickX.value = index0;
clickY.value = index1;
lastTap.value = now
}
}
@ -1363,4 +1316,15 @@
border-bottom: 1rpx solid transparent;
border-image: repeating-linear-gradient(90deg, #A9ACB1 0px, #A9ACB1 6rpx, transparent 6rpx, transparent 12rpx) 1;
}
.pulic-time {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #99C9FD;
font-size: 35rpx;
font-weight: 600;
}
</style>

BIN
static/back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
static/more.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
static/shili.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__FB2D473","name":"护理单元","version":{"name":"1.7.3","code":173},"description":"护理单元","developer":{"name":"","email":"","url":""},"permissions":{"Share":{},"Camera":{},"VideoPlayer":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"},"prerendered":"false"}},"google":{"abiFilters":["armeabi-v7a","arm64-v8a","x86"],"minSdkVersion":22,"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>"],"packagename":"uni.app.UNIFB2D473","aliasname":"__uni__fb2d473","password":"Z4Urhm9jqwqMGoeQNpGzJA==","storepwd":"Z4Urhm9jqwqMGoeQNpGzJA==","keypwd":"Z4Urhm9jqwqMGoeQNpGzJA==","keystore":"google-keystore.keystore","custompermissions":true},"apple":{"dSYMs":false,"plistcmds":["Add :UIFileSharingEnabled bool true"],"devices":"universal"},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}},"share":{"weixin":{"UniversalLinks":"","appid":"wxda748470da82886e"}}},"debug":true,"syncDebug":true,"orientation":"portrait-primary"},"nativePlugins":{"MonitorModule":{}},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"4.84","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}},"adid":"122926210510"},"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.7.3","code":173},"description":"护理单元","developer":{"name":"","email":"","url":""},"permissions":{"Share":{},"Camera":{},"VideoPlayer":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"},"prerendered":"false"}},"google":{"abiFilters":["armeabi-v7a","arm64-v8a","x86"],"minSdkVersion":22,"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>"],"packagename":"uni.app.UNIFB2D473","aliasname":"__uni__fb2d473","password":"Z4Urhm9jqwqMGoeQNpGzJA==","storepwd":"Z4Urhm9jqwqMGoeQNpGzJA==","keypwd":"Z4Urhm9jqwqMGoeQNpGzJA==","keystore":"google-keystore.keystore","custompermissions":true},"apple":{"dSYMs":false,"plistcmds":["Add :UIFileSharingEnabled bool true"],"devices":"universal"},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}},"share":{"weixin":{"UniversalLinks":"","appid":"wxda748470da82886e"}}},"debug":true,"syncDebug":true,"orientation":"portrait-primary"},"nativePlugins":{"MonitorModule":{}},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"4.85","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}},"adid":"122926210510"},"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

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -148,7 +148,7 @@
"uni-app": {
"control": "uni-v3",
"vueVersion": "3",
"compilerVersion": "4.84",
"compilerVersion": "4.85",
"nvueCompiler": "uni-app",
"renderer": "auto",
"nvue": {

File diff suppressed because one or more lines are too long