diff --git a/pages/NursingNew/component/nurse/bigindex.css b/pages/NursingNew/component/nurse/bigindex.css index a33e6d5..d45a34b 100644 --- a/pages/NursingNew/component/nurse/bigindex.css +++ b/pages/NursingNew/component/nurse/bigindex.css @@ -150,10 +150,11 @@ .title-time-blue { /* 你的定位与尺寸保持不变 */ position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 96%; + height: 96%; z-index: 10; .blue-img { @@ -257,10 +258,8 @@ } .title-time-border { - margin-top: 4rpx; - margin-left: 4rpx; - width: calc(100% - 8rpx); - height: calc(100% - 8rpx); + width: calc(100% - 20rpx); + height: calc(100% - 20rpx); border-radius: 20rpx; display: flex; align-items: center; @@ -525,19 +524,34 @@ .order-history { width: 100%; height: 450rpx; + margin-top: 5rpx; + + .history-spe { + min-width: 86%; + height: 100%; + margin-left: 14%; + background-color: #F7F8F9; + border-radius: 15rpx; + padding-top: 10rpx; + padding-left: 20rpx; + } + /* background-color: red; */ - .history-title{ + .history-title { width: 100%; height: 70rpx; display: flex; align-items: center; padding: 0 30rpx; justify-content: space-between; - .history-left{ + + + .history-left { font-size: 30rpx; margin-top: 10rpx; } - .history-right{ + + .history-right { margin-top: 0.5vw; width: 7vw; height: 2.5vw; @@ -551,6 +565,90 @@ position: relative; } } + + .history-items { + width: 100%; + margin-top: 15rpx; + height: 385rpx; + + .history-item { + /* margin-left: 1%; */ + width: 95%; + height: 120rpx; + margin-bottom: 13rpx; + position: relative; + display: flex; + align-items: center; + + .history-left { + /* margin-left: 58rpx; */ + width: 120rpx; + } + + .history-right { + height: 100%; + width: 245rpx; + + border-radius: 10rpx; + display: flex; + align-items: center; + position: relative; + margin-left: 5rpx; + + + + .item-name { + width: 80rpx; + /* 必须有宽度 */ + font-size: 25rpx; + white-space: nowrap; + /* 不换行 */ + overflow: hidden; + /* 超出隐藏 */ + text-overflow: ellipsis; + /* 省略号 */ + } + + .item-min { + font-size: 25rpx; + } + } + + .history-time { + font-weight: 800; + font-size: 32rpx; + margin-bottom: 0rpx; + } + + .history-name { + margin-left: 5rpx; + font-size: 24rpx; + color: #555555; + + } + + .history-shu-up { + position: absolute; + left: 32rpx; + top: -53.5%; + width: 3rpx; + height: 93%; + background-color: #E5E5E5; + } + + .history-shu-circle { + position: absolute; + left: 20rpx; + top: 50%; + transform: translateY(-50%); + width: 26.5rpx; + height: 26.5rpx; + border-radius: 50%; + border: 4.5rpx solid #D0D1D1; + z-index: 1; + } + } + } } .order-future { @@ -564,12 +662,13 @@ .future-fonts { font-size: 27rpx; + display: flex; } .future-item-target { width: 90%; margin-left: 5%; - min-height: 150rpx; + min-height: 152rpx; margin-bottom: 10rpx; background-color: #F7F8F9; border-radius: 30rpx; @@ -580,14 +679,14 @@ color: #555555; position: relative; border: 2rpx solid #4690FF; - + transition: height 0.3s ease; } .future-item { width: 90%; margin-left: 5%; - min-height: 150rpx; + min-height: 152rpx; margin-bottom: 10rpx; background-color: #F7F8F9; border-radius: 30rpx; @@ -598,7 +697,7 @@ color: #555555; position: relative; border: 2rpx solid #F7F8F9; - + transition: height 0.3s ease; } @@ -634,7 +733,22 @@ justify-content: center; align-items: center; } - +.future-info { + position: absolute; + left: 23rpx; + bottom: 23rpx; + font-size: 25rpx; + color: #555555; + display: flex; +} +.info{ + display: flex; + .info-img{ + width: 30rpx; + height: 30rpx; + margin-right: 3rpx; + } +} .calendar-father { position: fixed; top: 150rpx; @@ -652,4 +766,136 @@ left: 0; z-index: 100; background: RGBA(239, 240, 244, 0.55); +} + +.history-img { + width: 30rpx; + height: 30rpx; + /* margin-left: 15rpx; */ + /* background-color: red; */ +} + +.small-font { + margin-top: 3rpx; + width: 310rpx; + white-space: nowrap; + /* 不换行 */ + overflow: hidden; + /* 超出隐藏 */ + text-overflow: ellipsis; + /* 省略号 */ + color: #999999; + font-size: 22rpx; +} + +.card-bao { + position: absolute; + right: 30rpx; + top: 40rpx; + width: 30rpx; + height: 30rpx; + font-size: 18rpx; + display: flex; + justify-content: center; + align-items: center; + background-color: #4690FF; + color: #fff; + border-radius: 5rpx; +} + +.card-overtime { + position: absolute; + right: 30rpx; + bottom: 40rpx; + width: 45rpx; + height: 30rpx; + font-size: 18rpx; + display: flex; + justify-content: center; + align-items: center; + background-color: #E33B3B; + color: #fff; + border-radius: 5rpx; +} + +.card-over { + max-width: 200rpx; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.time-right-bad { + color: #666666; + font-size: 24rpx; + margin-left: 10rpx; + margin-top: 10rpx; +} + +.time-right-blue { + color: #4690FF; + font-size: 24rpx; + margin-left: 10rpx; + margin-top: 10rpx; + display: flex; + position: relative; +} + +.ellipsis { + position: absolute; + left: 105rpx; + top: 20rpx; + display: flex; + gap: 5rpx; + + + /* height: 28px; */ + /* 点的高度 + 跳起空间 */ +} + + +.dot { + width: 5rpx; + height: 5rpx; + background: #4690FF; + border-radius: 50%; + animation: jump 1.5s ease-in-out infinite; + +} + + +@keyframes jump { + + 0%, + 80%, + 100% { + transform: translateY(0); + } + + 40% { + transform: translateY(-8px); + } +} + + +@media (prefers-reduced-motion: reduce) { + .dot { + animation: none; + } +} +.open-img-father{ + position: absolute; + right: 35rpx; + bottom: 28rpx; + width: 22rpx; + height: 22rpx; + transition: transform 0.3s ease; + .open-img{ + width: 100%; + height: 100%; + } +} +.serviceContent{ + color: #999999; + margin-top: 20rpx; } \ No newline at end of file diff --git a/pages/NursingNew/component/nurse/bigindex.vue b/pages/NursingNew/component/nurse/bigindex.vue index 2090078..26848ed 100644 --- a/pages/NursingNew/component/nurse/bigindex.vue +++ b/pages/NursingNew/component/nurse/bigindex.vue @@ -53,6 +53,14 @@ src="/static/index/bluetarget.png" /> + + 包 + + + 超时 + + @@ -78,8 +86,14 @@ - + + + + {{(item0.positioning.length == 1 ? ('0' + item0.positioning) : item0.positioning) + ":" + timeArray[index1]}} + @@ -105,22 +119,65 @@ - - + + - {{ item.directiveName + ` | ` }} {{ item.serviceDuration + `分钟` }} + + {{ item.directiveName }} + + {{ ` | ` +item.serviceDuration + `分钟` }} {{ extractHHMM(item.startTime) }} - + + {{ item.tagtype=="1"?'即将开始':'指令尚未开始' }} + + + 正在进行 + + + + {{ item.cycleType }} - + + + + + {{ item.optNames?.split(',')[0] }} + + + + {{ item.optNames?.split(',')[1] }} + + + + + + {{ item.optTypeName }} + + + + {{ item.optNames }} + + + + + + + + {{ item.serviceContent }} + + @@ -133,24 +190,33 @@ 长者标签 - + @@ -177,22 +243,15 @@ required: true, }, }); - // watch( - // () => props.isshow, - // (newVal, oldVal) => { - // // 只有当新旧值不相同时才执行 - // if (newVal !== oldVal) { - - - // } - // } - // ) + const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/') const opendata = ref(false); const bodystatus = ref(false); const bodystatustarget = ref(-1); const facestatus = ref(false); const facestatustarget = ref(-1); + const firstListTarget = ref(-1) + const secondListTarget = ref(-1) /* ---- 用于 transform 的响应式字符串 ---- 注意:虽然这是响应式,但我们只在 rAF 里更新它(受控更新),避免频繁触发 Vue 渲染 */ const transformStyle = ref('translate3d(0, 0, 0)'); @@ -258,7 +317,7 @@ endDay = new Date(selY, selM, 0).getDate() } daysarray.value = Array.from({ length: endDay }, (_, i) => String(i + 1).padStart(2, '0')) - console.log("啥",daysarray.value) + // console.log("啥", daysarray.value) movetime.value = (Number(selectdata.value.day) - 3) * 25 } const daytarget = ref(0) @@ -326,8 +385,11 @@ }) const getFontClass = (item : any, index0, index1) => { + switch (item.executeStatus) { - case 'hisFaild': + case 'hisUnExe': + return 'card-time-red'; + case 'hisTimeOut': return 'card-time-red'; case 'current': @@ -397,8 +459,9 @@ switch (item.executeStatus) { case 'hisOk': return 'title-time-border-hisOk'; - - case 'hisFaild': + case 'hisUnExe': + return 'title-time-border-hisFaild'; + case 'hisTimeOut': return 'title-time-border-hisFaild'; case 'current': @@ -411,23 +474,12 @@ } return 'title-time-border'; } - function getstates(item) { - // console.log("啥啊",item.izStart) - // if(item.izStart=='N'){ - - // if(item.izTimeout == 'Y'){ - - // return `超时` - // }else{ - // return `未执行` - // } - // }else{ - // if(item.optType==2){ - // return item.optNames?.split(',').join('/') - // }else{ - // return `${item.optTypeName}/${item.optNames}` - // } - // } + const clickfirstarray = (item, index) => { + if (firstListTarget.value != -1) { + firstListTarget.value = -1 + } else if (!item.tagtype) { + firstListTarget.value = index; + } } // 通用的生成函数 function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) { @@ -470,7 +522,9 @@ const showDetail = ref([-1, -1]) const moveById = ref(0); const rulerTouchClickfather = (index0 : number, index1 : number) => { - // console.log("sssss", timearr.value[index0].children[index1].id) + console.log("sssss", timearr.value[index0].children[index1]) + firstListTarget.value = -1; + secondListTarget.value = -1; moveById.value = timearr.value[index0].children[index1].id backsearch(moveById.value) rulerTouchClick(index0, index1) @@ -568,9 +622,20 @@ let time = `${selectdata.value.year}-${selectdata.value.month}-${selectdata.value.day}` getDirectiveOrders(time).then((data) => { - console.log("所有的数据",data.result.history) - console.log("现在",data.result.current) - console.log("未来",data.result.future) + firstListTarget.value = -1; + secondListTarget.value = -1; + // console.log("现在", data.result.current) + // console.log("未来", data.result.future) + data.result.current.forEach((element : any) => { + element.tagtype = 0 + }) + data.result.future.forEach((element : any, index : number) => { + if (index) { + element.tagtype = 2 + } else { + element.tagtype = 1 + } + }) upmenuarray.value = [...data.result.current, ...data.result.future] downmenuarray.value = [...data.result.history] timearr.value = Array.from({ length: 24 }, (_, hour) => ({ @@ -582,22 +647,45 @@ data.result.all.forEach((element : any) => { element.positioning = parseHourMinute(element.startTime).hour; element.positioningLong = parseHourMinute(element.startTime).minute / 5; - if (element.izStart == 'N') { + if (element.executeStatus === 'hisUnExe') { element.rightshow = `未执行` - - } else { - if (element.izTimeout == 'Y') { - element.rightshow = `超时` - return - } + } else if (element.executeStatus === 'current') { + element.rightshow = `` + } else if (element.executeStatus === 'future') { + element.rightshow = `` + } + else { if (element.optType == 2) { element.rightshow = element.optNames?.split(',').join('/') } else { element.rightshow = `${element.optTypeName}/${element.optNames}` } } - timearr.value[element.positioning].children[element.positioningLong] = element; + // switch (element.executeStatus) { + + // case 'hisUnExe': + // element.rightshow = `未执行` + + // case 'hisTimeOut': + // element.rightshow = `${element.optTypeName}/${element.optNames}` + // case 'hisOk': + // element.rightshow = `${element.optTypeName}/${element.optNames}` + // case 'hisTimeOut': + // element.rightshow = `${element.optTypeName}/${element.optNames}` + // case 'hisTimeOut': + // element.rightshow = `${element.optTypeName}/${element.optNames}` + + // default: + // return 'card-time'; + + // } + if (element.cycleTypeId != 3) { + timearr.value[element.positioning].children[element.positioningLong] = element; + } + + // console.log("aaaaaa", element) }) + }) } const savePackagelist = ref([]); @@ -721,7 +809,9 @@ opendata.value = true; } const searchtable = (item : any) => { - // console.log("aaaa", item) + // console.log("aaaaaaa",item) + firstListTarget.value = -1; + secondListTarget.value = -1; moveById.value = item.id backsearch(item.id) timearr.value.forEach((element : any) => { @@ -733,10 +823,16 @@ }) } const firsttopmove = ref(0) + const secondtopmove = ref(0) const backsearch = (id) => { - upmenuarray.value.forEach((element:any,index:number)=>{ - if(element.id === id){ - firsttopmove.value = (index-1) * 80 + upmenuarray.value.forEach((element : any, index : number) => { + if (element.id === id) { + firsttopmove.value = (index - 1) * 80 + } + }) + downmenuarray.value.forEach((element : any, index : number) => { + if (element.id === id) { + secondtopmove.value = (index - 1) * 66.5 } }) } diff --git a/static/index/down.png b/static/index/down.png new file mode 100644 index 0000000..e69b9ab Binary files /dev/null and b/static/index/down.png differ diff --git a/static/index/leftpeople.png b/static/index/leftpeople.png new file mode 100644 index 0000000..3f5f8e7 Binary files /dev/null and b/static/index/leftpeople.png differ diff --git a/static/index/rightpeople.png b/static/index/rightpeople.png new file mode 100644 index 0000000..da9b2ce Binary files /dev/null and b/static/index/rightpeople.png differ