diff --git a/pages/NursingNew/component/nurse/api.js b/pages/NursingNew/component/nurse/api.js index 2e48c58..3156e50 100644 --- a/pages/NursingNew/component/nurse/api.js +++ b/pages/NursingNew/component/nurse/api.js @@ -109,7 +109,6 @@ export const editDirective = (params) => { // 根据日期查询日程表 export const getDirectiveOrders = (date) => { - // console.log("aaaaaaaaaaaaa",uni.getStorageSync('nuId'),uni.getStorageSync('elderId'),date) return request({ url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/getDirectiveOrders?nuId=${uni.getStorageSync('nuId')}&elderId=${uni.getStorageSync('elderId')}&queryDate=${date}`, method: 'get', @@ -119,7 +118,7 @@ export const getDirectiveOrders = (date) => { // 新增服务指令 export const addDirective = (params) => { return request({ - url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/directive/addDirective`, + url: `${uni.getStorageSync('serverUrl')}/api/pad/care/directive/addDirective`, method: 'post', data: params, }) diff --git a/pages/NursingNew/component/nurse/bigindex.vue b/pages/NursingNew/component/nurse/bigindex.vue index 51a123e..3beea08 100644 --- a/pages/NursingNew/component/nurse/bigindex.vue +++ b/pages/NursingNew/component/nurse/bigindex.vue @@ -173,7 +173,7 @@ :class="moveById===item.id? `future-item-target`: `future-item`" :style="{ height: firstListTarget === index ? '300rpx' : '140rpx', left: firstListTargetShow === index ? '0' : '999rpx', - top: index === upmenuarray.length - 1 && firstListTarget === index? `-164rpx`:`0rpx` + // top: index === upmenuarray.length - 1 && firstListTarget === index? `-164rpx`:`0rpx` }"> diff --git a/pages/NursingNew/component/nurse/index.css b/pages/NursingNew/component/nurse/index.css index d9f16d9..7b05a3a 100644 --- a/pages/NursingNew/component/nurse/index.css +++ b/pages/NursingNew/component/nurse/index.css @@ -674,7 +674,7 @@ transition: opacity 1s ease; position: relative; margin-left: -50rpx; - + /* background-color: blue; */ .joystick { @@ -2510,14 +2510,250 @@ } } +.target-items-father { + margin-top: 20rpx; + width: 90%; + margin-left: 7%; + height: 510rpx; + position: relative; + + + + .target-edit { + position: absolute; + right: 5rpx; + bottom: 5rpx; + width: 130rpx; + height: 60rpx; + display: flex; + justify-content: center; + align-items: center; + background-color: #F5FAFF; + border: 2rpx solid #0080FC; + border-radius: 10rpx; + color: #0089FE; + font-size: 33rpx; + } + + .target-items { + width: 100%; + height: 50rpx; + margin-top: 30rpx; + margin-left: -5rpx; + display: flex; + align-items: center; + + .target-gray { + background-color: #F8F8FA; + border: 1rpx solid #D5D5D5; + display: flex; + height: 100%; + align-items: center; + padding: 0 18rpx; + border-radius: 10rpx; + font-size: 28rpx; + color: #222222; + } + + + } + + .target-contain { + margin-top: 20rpx; + height: 135rpx; + width: 100%; + display: flex; + + /* background-color: blue; */ + .image-father { + width: 100rpx; + height: 150rpx; + display: flex; + justify-content: center; + + /* align-items: center; */ + .target-img { + margin-top: 20rpx; + width: 80rpx; + height: 80rpx; + } + } + + .image-right { + width: 500rpx; + height: 100%; + margin-left: 15rpx; + + /* background-color: green; */ + .right-title { + font-size: 31rpx; + color: #555555; + margin-left: 5rpx; + } + + .target-many { + /* margin-top: 10rpx; */ + height: 75rpx; + width: 150rpx; + display: flex; + + /* background-color: red; */ + .target-strart { + font-size: 65rpx; + color: #2A2A2A; + font-weight: 800; + margin-right: 6rpx; + } + + .target-other { + min-width: 800rpx; + margin-top: 35rpx; + display: flex; + align-items: center; + + /* background-color: red; */ + .target-blue { + color: #0089FE; + } + + .target-shu { + margin: 0 10rpx; + } + } + } + } + } + + .target-smalltext { + width: 95%; + height: 200rpx; + /* background-color: red; */ + color: #666666; + font-size: 27rpx; + } +} + +.edit-open { + position: absolute; + top: 310rpx; + left: 0; + width: 100%; + height: 472rpx; + background-color: #fff; + border: 2rpx solid rgba(0, 137, 254, 0.29); + border-radius: 35rpx; + z-index: 1; + + .edit-week { + width: 90%; + margin-left: 5%; + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; + + .week-day { + width: 25%; + height: 70rpx; + display: flex; + justify-content: center; + align-items: center; + /* background-color: blue; */ + } + } + + .edit-month { + width: 90%; + margin-left: 5%; + margin-top: -30rpx; + display: flex; + flex-wrap: wrap; + + .month-day { + width: 14%; + height: 50rpx; + display: flex; + justify-content: center; + align-items: center; + font-size: 27rpx; + color: #666666; + /* background-color: red; */ + /* background-color: blue; */ + } + } + + .edit-right { + position: absolute; + right: 30rpx; + bottom: 25rpx; + width: 120rpx; + height: 60rpx; + font-size: 30rpx; + display: flex; + justify-content: center; + align-items: center; + color: #0080FC; + border: 2rpx solid #0080FC; + border-radius: 10rpx; + background-color: #F5FAFF; + } + + .triangle { + position: absolute; + top: -8.34rpx; + right: 250rpx; + width: 0; + height: 0; + border-left: 14.44rpx solid transparent; + border-right: 14.44rpx solid transparent; + border-bottom: 8.34rpx solid rgba(0, 137, 254, 0.29); + + .triangle-small { + position: absolute; + top: 1.2rpx; + right: 50%; + transform: translateX(50%); + width: 0; + height: 0; + border-left: 14.44rpx solid transparent; + border-right: 14.44rpx solid transparent; + border-bottom: 8.34rpx solid #fff; + } + } + + .edit-menu { + width: 100%; + height: 100rpx; + display: flex; + align-items: center; + margin-left: 35rpx; + position: relative; + + .edit-tags { + width: 100rpx; + display: flex; + justify-content: center; + font-size: 30rpx; + } + + .edit-heng { + position: absolute; + bottom: 23rpx; + left: 40rpx; + width: 20rpx; + height: 5rpx; + border-radius: 5rpx; + background-color: #0080FC; + transition: left 0.3s ease; + } + } +} + .three-items { margin-top: 20rpx; width: 90%; margin-left: 7%; height: 510rpx; display: flex; - /* background-color: #fff; */ - /* 禁止元素拖动 */ .tree-item { @@ -2616,4 +2852,26 @@ /* background-color: rgba(236, 237, 241, 0.4); */ /* 添加毛玻璃效果 */ z-index: 10; +} + +.target-shu { + font-size: 32rpx; + color: #9e9e9e; + margin: 0 8rpx; + +} + +.card-bao { + position: absolute; + left: 35rpx; + top: 110rpx; + width: 32rpx; + height: 32rpx; + font-size: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background-color: #4690FF; + color: #fff; + border-radius: 5rpx; } \ No newline at end of file diff --git a/pages/NursingNew/component/nurse/index.vue b/pages/NursingNew/component/nurse/index.vue index 07858e3..9cb2176 100644 --- a/pages/NursingNew/component/nurse/index.vue +++ b/pages/NursingNew/component/nurse/index.vue @@ -30,7 +30,7 @@ - + @@ -105,16 +105,17 @@ --> - + 预览 - + 分享 - + 监控 @@ -138,8 +139,8 @@ - + @@ -178,13 +179,12 @@ - + - + - + + 包 + @@ -193,7 +195,7 @@ src="/static/index/procurement/haven.png" mode="aspectFill"> - + @@ -211,7 +213,7 @@ 双击服务指令可编辑矩阵 - + @@ -257,6 +259,84 @@ + + + + {{ ruleritem.categoryName }} + + + | + + + {{ ruleritem.typeName }} + + + + + + + + + {{ ruleritem.directiveName }} + + + + {{ ruleritem.startTime }} + + + + | + + + {{ ruleritem.newtypename }} + + + | + + + {{ ruleritem.serviceDuration }}分钟 + + + + + + + + {{ ruleritem.serviceContent }} + + + 编辑 + + + + + + + + + + {{ item }} + + + + + + {{ item }} + + + + + {{ item }} + + + + 确定 + + {{ editingmode?"确定":"+编辑" }} + @@ -529,7 +610,9 @@ const timeArray = [ `00`, `05`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `45`, `50`, `55` ]; - const weekDays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]; + const now = new Date(); + const monthDays = ref(getMonthDaysArray(now.getFullYear(), now.getMonth(), true)); + const weekDays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]; const days = Array.from({ length: 31 }, (_, i) => (i + 1).toString().padStart(2, "0")); const isweek = ref(true); // 是否周期 @@ -572,10 +655,12 @@ return "right-top" } }) + const editopen = ref(false) // 清理所有弹窗 const cleanallopen = () => { settingopen.value = false; explainopen.value = false; + editopen.value = false } // 这是二级菜单的动画的模板 const secondtemp = ref([]) @@ -643,6 +728,7 @@ }; const sOrig = parseTime(startTime); + const eOrig = parseTime(endTime); // 计算时长(分钟)。若发生负值,认为跨天(加 24*60) @@ -1023,8 +1109,28 @@ saveEditIndex.value.index1 = index1; centerCell(); ruleritem.value = item; - console.log("点击表格",item) - + + switch (ruleritem.value.cycleTypeId) { + case `1`: + ruleritem.value.newtypename = "每天" + break + case `3`: + ruleritem.value.newtypename = weekDays[Number(ruleritem.value.cycleValue)] + break + case `4`: + ruleritem.value.newtypename = Number(ruleritem.value.cycleValue) + "日" + break + case `5`: + ruleritem.value.newtypename = `每隔` + Number(ruleritem.value.cycleValue) + "天执行一次" + break + } + // if(ruleritem.value.cycleTypeId){ + // if(ruleritem.value.cycleValue) + // ruleritem.value.typename = + // } + + console.log("点击表格", item) + // isRule.value = true; // setTimeout(() => { // if (item.directiveName && open.value) { @@ -1527,7 +1633,8 @@ onMounted(() => { savePackagelist.value = uni.getStorageSync('Packagelist') || [] let res = uni.getStorageSync('saveTree0') - + console.log("包", savePackagelist.value + ) let goodArray = [] myArray.forEach((element : any) => { element?.children.forEach((element1 : any) => { @@ -1672,6 +1779,16 @@ listsave.value = bodyTagListLooksave.value } + } + const edittype = ref(0) + const clickedit = (index : number) => { + edittype.value = index; + // if (index) { + // listsave.value = emotionTagListLooksave.value + // } else { + // listsave.value = bodyTagListLooksave.value + // } + } const clickcard = (index : number) => { let data = menutype.value ? emotionTagListLooksave.value : bodyTagListLooksave.value @@ -1927,7 +2044,7 @@ } }) cycleValue = cycleTypeIndex.toString() - + } else { cycleType = monthValue.value + "号"; cycleValue = monthValue.value @@ -1946,7 +2063,7 @@ const formattedEnd = `${String(endHour)}:${String(endMinute % 60).padStart(2, '0')}` // 数据先留着,万一以后要 let param = { - id: timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id , + id: timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].id, nuId: uni.getStorageSync('nuId'), nuName: uni.getStorageSync('nuName'), elderId: uni.getStorageSync('elderId'), @@ -1990,30 +2107,77 @@ } whereEvent(data); 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')}`; + 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')}`; let postdata = { - nuId : uni.getStorageSync('nuId'), + nuId: uni.getStorageSync('nuId'), directiveId: allobject.id, - positioning:saveEditIndex.value.index0.toString(), + positioning: saveEditIndex.value.index0.toString(), positioningLong: saveEditIndex.value.index1.toString(), - tagName:timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].tagName, + tagName: timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1].tagName, startTime: formattedStart, - izPackage:`N`, - cycleTypeId:3, - cycleValue:0, - optTime:ts, - // optCount:"" + izPackage: `N`, + cycleTypeId: 3, + cycleValue: 0, + optTime: ts, } - addDirective(postdata).then((res)=>{ - console.log("kankan",postdata,res) + // let postdata = { + // nuId: 2512101001, + // directiveId: 2013784872664961025, + // positioning: 8, + // positioningLong: 3, + // tagName: `上午时段服务指令包`, + // startTime: `08:15`, + // izPackage: `Y`, + // cycleTypeId: 3, + // cycleValue: 0, + // // optTime: ts, + // optTime: "2026-01-26 16:43:14" + // } + // { + // "nuId": "2512101001", + // "directiveId": "2013784872664961025", + // "positioning": "8", + // "positioningLong": "3", + // "tagName": "上午时段服务指令包", + // "startTime": "08:15", + // "izPackage": "Y", + // "cycleTypeId": 3, + // "cycleValue": 0, + // "optTime": "2026-01-26 16:43:14" + // } + addDirective(postdata).then((res) => { + console.log("kankan", postdata, res) if (res.success) { geteverything() + setTimeout(() => { + rulerTouchClick(timearr.value[saveEditIndex.value.index0].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1) + }, 200) + } }) } onBeforeUnmount(() => { if (singleTimer) clearTimeout(singleTimer) }) + function getMonthDaysArray(year, month, padEnd = false) { + const firstDay = new Date(year, month, 1); + // 周一为第一天:Mon=0 ... Sun=6 + const leadingEmptyCount = (firstDay.getDay() + 6) % 7; + const daysInMonth = new Date(year, month + 1, 0).getDate(); + + const arr = Array.from({ length: leadingEmptyCount }, () => ''); + + for (let d = 1; d <= daysInMonth; d++) { + arr.push(String(d).padStart(2, '0')); // ⭐ 关键:补 0 + } + + // 可选:补齐到整周(7 的倍数) + if (padEnd) { + while (arr.length % 7 !== 0) arr.push(''); + } + + return arr; + }