diff --git a/component/rightItemssecond/index.vue b/component/rightItemssecond/index.vue
index 33cc867..f6b2ceb 100644
--- a/component/rightItemssecond/index.vue
+++ b/component/rightItemssecond/index.vue
@@ -1,7 +1,8 @@
-
+
ID:12345678
@@ -48,7 +49,7 @@
+ style="background: linear-gradient(135deg, #01e7be 0%, #0080dd 100%);">
监控
@@ -101,71 +102,84 @@
-
+
-
+
+ :style="rightListIndex ? { width: '274rpx' } : { width: '206rpx' }">
{{item0.time + ":00"}}
+ :style="rightListIndex ? { width: '274rpx' } : { width: '206rpx' }">
-
{{item1.serve}}
+
+ -
+
+
-
+
{{item1.time}}
+
+ :src="item1.type=='日常'?`/static/index/yellowbian.png`:`/static/index/puoplebian.png`" />
{{item1.type}}
-
-
+
{{splitString(item1.value)[0]}}
-
- {{splitString(item1.value)[0]}}
-
-
-
- {{splitString(item1.value)[1]}}
+
+
+
+ {{splitString(item1.value)[index + 1]}}
+
-
@@ -183,25 +197,28 @@
- 快捷指令
+ 即时指令
-
-
-
-
- ×
-
+
+
+
+
+
+ -
+
-
-
+
+
+
+ {{item.name}}
- {{item.name}}
-
+
@@ -218,9 +235,6 @@
-
+
+
+
+
@@ -352,12 +401,14 @@
watch(
() => props.canmove,
() => {
- bottomisShaking.value = false
+ bottomisShaking.value = false;
+ // shakyTable.value = false
})
watch(
() => props.isshow,
() => {
bottomisShaking.value = false
+ shakyTable.value = false
})
onMounted(() => {
downList.value = bigArray[0].data
@@ -379,6 +430,54 @@
name: '大便',
url: "/static/index/baba.png"
},
+ {
+ name: '纸尿裤',
+ url: "/static/index/niao.png"
+ },
+ {
+ name: '呕吐',
+ url: "/static/index/tu.png"
+ },
+ {
+ name: '吸痰',
+ url: "/static/index/ou.png"
+ },
+ {
+ name: '大便',
+ url: "/static/index/baba.png"
+ },
+ {
+ name: '纸尿裤',
+ url: "/static/index/niao.png"
+ },
+ {
+ name: '呕吐',
+ url: "/static/index/tu.png"
+ },
+ {
+ name: '吸痰',
+ url: "/static/index/ou.png"
+ },
+ {
+ name: '大便',
+ url: "/static/index/baba.png"
+ },
+ {
+ name: '纸尿裤',
+ url: "/static/index/niao.png"
+ },
+ {
+ name: '呕吐',
+ url: "/static/index/tu.png"
+ },
+ {
+ name: '吸痰',
+ url: "/static/index/ou.png"
+ },
+ {
+ name: '大便',
+ url: "/static/index/baba.png"
+ },
])
const timeArray = [
`00`, `05`, `10`, `15`, `20`, `25`, `30`, `35`, `40`, `45`, `50`, `55`
@@ -387,7 +486,8 @@
const days = Array.from({ length: 31 }, (_, i) => (i + 1).toString().padStart(2, "0"));
const isweek = ref(true);
//弹窗
- // const isPopupVisible = ref(false);
+ // const containerRef = ref(null);
+ const scrollLeft = ref(0);
//移动表格
const scrollTop = ref(0)
//左下的数组
@@ -401,19 +501,67 @@
const songisopen = ref(false)
const isopacity = ref(false)
const songisopacity = ref(false)
+ // 删除表格弹窗
+ const deleteisopen = ref(false);
+ const deletename = ref("")
+ const deleteisopacity = ref(false)
//第几套表格
const currentNumber = ref(1);
+ const scrollKey = ref(0);
+ function pseudoRandom(index0, index1) {
+ const seed = index0 * 55.9898 + index1 * 78.233;
+ // 产生一个伪随机数,取小数部分
+ return Math.abs(Math.sin(seed) * 43758.5453) % 1;
+ }
+ function computeDelay(index0, index1) {
+ const range = 2; // 延迟范围 0 ~ 2 秒
+ return pseudoRandom(index0, index1) * range;
+ }
const changecurrentNumber = (event : any) => {
currentNumber.value = event.detail.current;
+ nextTick(() => {
+ scrollTop.value = moveDownNumber.value;
+ })
+
};
+ //监听拖拽
+ const dragOffset = ref(0);
+ const moveDownNumber = ref(0)
+ function handleScrolltime(e) {
+ let num = e.detail.scrollTop
+ let formattedNum = parseFloat(num.toFixed(2));
+ moveDownNumber.value = formattedNum
+ }
+ const changeBug = ref(true);
+ const nextItems = () => {
+ currentNumber.value > 2 ? currentNumber.value = 0 : currentNumber.value++
+ }
// 方法:根据条件返回不同的类名
const getClass = (item, index0, index1) => {
- if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
+ if (!props.canmove && props.liang.index0 === index0 && redNameindex0.value.includes(index0 + (currentNumber.value * 6)) && props.liang.index1 === index1 ) {
+ return 'title-time-border-red';
+ }
+ else if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
return 'title-time-border-blue';
- } else if (item.type === '日常') {
- return 'title-time-border-yellow';
+ }
+ else if (item.type === '日常') {
+ if (flyNumber.value.index0 === (index0 + (currentNumber.value * 6)) && flyNumber.value.index1 === index1 && shakyTable.value) {
+ return 'title-time-border-yellow-active-transparent';
+ } else if (shakyTable.value) {
+ return 'title-time-border-yellow-active';
+ } else {
+ return 'title-time-border-yellow';
+ }
} else if (item.type) {
- return 'title-time-border-pouple';
+ //为啥这么写,是因为动画写行内无效!!!
+ if (flyNumber.value.index0 === (index0 + (currentNumber.value * 6)) && flyNumber.value.index1 === index1 && shakyTable.value) {
+ return 'title-time-border-pouple-active-transparent';
+ }
+ else if (shakyTable.value) {
+ return 'title-time-border-pouple-active';
+ } else {
+ return 'title-time-border-pouple';
+ }
}
return 'title-time-border';
}
@@ -436,7 +584,7 @@
const underFans = ref(false);
// 当前选中的菜单索引
const roomTar = ref([]);
- const emit = defineEmits(['darkchange', 'savename', 'closename']);
+ const emit = defineEmits(['darkchange', 'savename', 'saveruler', 'closename', 'changefangkuang']);
// 暗黑模式改变
const darkFanschange = () => {
emit('darkchange', !props.darkFans);
@@ -463,48 +611,105 @@
const openY = ref(0)
const flyNumber = ref({
index0: 999,
- index1: 999
+ index1: 999,
+ serve: ''
})
-
- const deletebottom = (index : number) => {
- bottomItems.value.splice(index, 1)
+ const deletebottomindex = ref(-1);
+ const deletedownisopen = ref(false);
+ const deletedownisopacity = ref(false);
+ const deletebottom = (index : number, name : string) => {
+ bottomisShaking.value = false;
+ deletebottomindex.value = index;
+ shakyTable.value = false;
+ deletedownisopacity.value = false;
+ deletedownisopen.value = true;
+ deletename.value = name;
+ setTimeout(() => {
+ deletedownisopacity.value = true
+ }, 200)
}
+ const deleteindex = ref([-1, -1])
+ const deleteItems = (name : string, index0 : number, index1 : number) => {
+ deleteindex.value = [-1, -1];
+ shakyTable.value = false;
+ bottomisShaking.value = false;
+ deleteisopacity.value = false;
+ deleteisopen.value = true;
+ deleteindex.value = [index0 + (currentNumber.value * 6), index1]
+ deletename.value = name;
+ setTimeout(() => {
+ deleteisopacity.value = true
+ }, 200)
+ }
+ //表格点击开始
+ const rulerTouchClick = (item : any, index0 : number, index1 : number, e : any) => {
+ moveX.value = Math.floor(e.touches[0].pageX);
+ moveY.value = Math.floor(e.touches[0].pageY);
+ if (item.value) {
+ const query = uni.createSelectorQuery()
+ query
+ .selectAll('.super-card-time-card')
+ .boundingClientRect((data : any) => {
+ data.forEach(async (res : any) => {
+ // 根据你的条件筛选元素
+ if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
+ if (res.left > 200 && res.left < 500) {
+ // 表格太靠左侧,修改到右面
+ openX.value = Math.floor(res.left) + 520;
+ } else {
+ openX.value = Math.floor(res.left)
+ }
+ if (res.top > 140 && res.top < 300) {
+ // 表格太靠上侧,修改到下面
+ openY.value = Math.floor(res.top) + 250;
+ } else {
+ openY.value = Math.floor(res.top)
+ }
+ // openY.value = Math.floor(res.top);
+ await nextTick()
+ isopen.value = true;
+ isopacity.value = false;
+ //加动画
+ setTimeout(() => {
+ isopacity.value = true;
+ }, 100)
+ }
+ })
+ })
+ .exec()
+ }
+ }
+ const shakyTable = ref(false);
//表格长按开始
const rulerTouchStart = (item : any, index0 : number, index1 : number, e : any) => {
+ scrollTop.value = moveDownNumber.value;
moveX.value = Math.floor(e.touches[0].pageX);
moveY.value = Math.floor(e.touches[0].pageY);
timer.value = setTimeout(() => {
if (item.value) {
+ // console.log("???",item.serve)
+ flyNumber.value.serve = item.serve
flyNumber.value.index0 = index0 + (currentNumber.value * 6);
flyNumber.value.index1 = index1;
+ indexsave.value = [-1, -1]
+ const reldata = []
+ isTuoing.value = true;
const query = uni.createSelectorQuery()
query
.selectAll('.super-card-time-card')
.boundingClientRect((data : any) => {
data.forEach(async (res : any) => {
// 根据你的条件筛选元素
- if (res.left > 200 && res.left < 1067 && res.top < 600 && res.top > 170 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
- if (res.left > 200 && res.left < 500) {
- openX.value = Math.floor(res.left) + 520;
- } else {
- openX.value = Math.floor(res.left)
- }
-
- openY.value = Math.floor(res.top);
- await nextTick()
- isopen.value = true;
- isopacity.value = false;
- //加动画
- setTimeout(() => {
- isopacity.value = true;
- }, 100)
-
+ if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140) {
+ shakyTable.value = true;
+ reldata.push(res)
}
})
})
.exec()
+ emit('saveruler', item, reldata);
}
- }, 200); // 2秒后触发
+ }, 100); // 2秒后触发
}
const rulerTouchMove = (e : any) => {
const moveXa = Math.floor(e.touches[0].pageX);
@@ -523,6 +728,7 @@
}
//表格长按结束
const rulerTouchEnd = () => {
+ isTuoing.value = false;
if (timer.value) {
clearTimeout(timer.value);
timer.value = null;
@@ -556,7 +762,7 @@
})
if (emptyChildNumber > 4 && emptyChildIndices.length > 1) {
timearr.value.forEach((res : any, rowIndex : number) => {
- res.children.splice(emptyChildIndices[0], 1);
+ res.children.splice(emptyChildIndices[0], 1)
})
} else {
timearr.value.forEach((res : any, rowIndex : number) => {
@@ -564,6 +770,7 @@
res.children.push({ value: '' })
})
}
+ deleteisopen.value = false;
}
const longPressTimer = ref(null);
const isScrolling = ref(false)
@@ -582,17 +789,31 @@
const isBack = ref(false)
const saveX = ref(0);
const saveY = ref(0);
+ const isTuoing = ref(false);
+ //给红色表格用
+ const redNameindex0 = ref([]);
//左下菜单长按开始
const handleTouchStart = (item : string, index : number, e : any) => {
+ redNameindex0.value = [];
+ shakyTable.value = false
saveX.value = Math.floor(e.touches[0].pageX);
saveY.value = Math.floor(e.touches[0].pageY);
//执行方法
longPressTimer.value = setTimeout(() => {
if (isScrolling.value) return
+ timearr.value.forEach((element0:any,index0:number)=>{
+ element0.children.forEach((element1:any)=>{
+ if(element1.serve === item && element1.value ){
+ redNameindex0.value.push(index0)
+ }
+ })
+ })
+ // console.log("!!!!",redNameindex0.value)
+ // redNameindex0.value = 0;
isBack.value = true;
downmenuIndex.value = index
indexsave.value = [-1, -1]
-
+ isTuoing.value = true;
const reldata = []
const query = uni.createSelectorQuery()
query
@@ -600,16 +821,14 @@
.boundingClientRect((data : any) => {
data.forEach((res : any) => {
// 根据你的条件筛选元素
- if (res.left > 200 && res.left < 1067 && res.top < 600 && res.top > 170) {
+ if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140) {
reldata.push(res)
}
})
})
.exec()
emit('savename', item, reldata);
- // 如果触发了长按,也可以考虑设置一个标记,防止后续重复触发
}, 200)
-
}
function isblue() {
if (((!openOp.value) && cardsumit.value.startTime) || (openOp.value === 1 && cardsumit.value.startTime && (cardsumit.value.weekTime || cardsumit.value.monthTime)) || openOp.value === 2) {
@@ -633,6 +852,7 @@
}
}
const handleTouchEnd = () => {
+ isTuoing.value = false;
if (longPressTimer.value) {
clearTimeout(longPressTimer.value)
longPressTimer.value = null
@@ -640,19 +860,33 @@
}
const bottomTimer = ref(null);
const bottomisShaking = ref(false);
- const bottomTouchStart = () => {
+ const bottomTouchStart = (e) => {
+ saveX.value = Math.floor(e.touches[0].pageX);
+ saveY.value = Math.floor(e.touches[0].pageY);
// 2秒后触发抖动效果
bottomTimer.value = setTimeout(() => {
bottomisShaking.value = true
}, 500)
}
+ const bottomTouchMove = (e) => {
+ const moveX = Math.floor(e.touches[0].pageX);
+ const moveY = Math.floor(e.touches[0].pageY);
+ // 计算移动距离
+ if (
+ Math.abs(moveX - saveX.value) > 0 ||
+ Math.abs(moveY - saveY.value) > 0
+ ) {
+ if (bottomTimer.value) {
+ clearTimeout(bottomTimer.value)
+ bottomTimer.value = null
+ }
+ }
+ }
const bottomTouchEnd = () => {
if (bottomTimer.value) {
clearTimeout(bottomTimer.value)
bottomTimer.value = null
}
- // 根据实际需求决定是否立即取消抖动
- // bottomisShaking.value = false
}
const openValue = ref({
time: "",
@@ -730,11 +964,115 @@
clickOp(0, openValue.value.array[0].type, openValue.value.array[0].op)
}
}
+ // (长按变革后)表格拖动结束
+ const rulerMoveEnd = (object : any) => {
+ if (props.liang.index0 !== 999 && object.type) {
+ indexsave.value = [props.liang.index0 + (currentNumber.value * 6), props.liang.index1]
+ let savaIndex = -1;
+ let emptyChildIndices = [];
+ timearr.value.forEach((res : any, rowIndex : number) => {
+ // 检测行列空则去除
+ emptyChildIndices = [];
+ // 遍历 res.children 数组中的每个子元素 child
+ res.children.forEach((child, index) => {
+ // 检查 child 的 value 属性是否为空
+ if (child.value === null || child.value === '' || child.value === undefined) {
+ // 如果是空值,检查其他 res.children 中相同索引的元素
+ const isEmptyInAllRows = timearr.value.every((otherRes) => {
+ const otherChild = otherRes.children[index];
+ return otherChild === undefined || otherChild.value === null || otherChild.value === '' || otherChild.value === undefined;
+ });
+ // 如果在所有行中该位置的 value 都为空,记录该索引
+ if (isEmptyInAllRows) {
+ emptyChildIndices.push(index);
+ }
+ }
+ });
+ // 检测是否已经没有东西了
+ res.children.forEach((item : any, index : number) => {
+ if (item.serve == object.serve) {
+ savaIndex = index
+ }
+ })
+ })
+ if (savaIndex === -1) {
+ //如果有东西,则自动顶到下一排空行
+ savaIndex = emptyChildIndices[0]
+ }
+ let haveAnyItem = 0;
+ let saveServe = "";
+ timearr.value.forEach((element : any) => {
+ if (element.children[0].value) {
+ haveAnyItem++
+ saveServe = element.children[0].serve
+ }
+ })
+ //防止覆盖serve
+ if (haveAnyItem > 1) {
+ timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { value: '', serve: saveServe }
+ } else {
+ timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { value: '' }
+ }
+
+ timearr.value[indexsave.value[0]].children[savaIndex] = object
+ // 直接转换 time 值,假设原来的 time 是类似 "08" 的字符串
+ // 修改 object 内的 time 值
+ // 获取父级时间的小时部分(例如 "08")
+ // 获取父级时间的小时部分,并转换成数字以去掉首位 0
+ const parentHour = parseInt(timearr.value[indexsave.value[0]].time, 10)
+
+ // 修改 object.time 的小时部分,保留分钟部分不变
+ object.time = object.time
+ .split('-')
+ .map(item => {
+ const parts = item.split(':')
+ return `${parentHour}:${parts[1]}`
+ })
+ .join('-')
+ // 检查是否有任意一个对象的 children 数组最后一个对象的 value 有值
+ const shouldAdd = timearr.value.some(obj => {
+ const children = obj.children;
+ return children[children.length - 1].value.trim() !== '';
+ });
+
+ // 如果满足条件,则为每个对象的 children 数组追加一个新对象
+ if (shouldAdd) {
+ timearr.value.forEach(obj => {
+ obj.children.push({ value: '' });
+ });
+ // 先将 scrollTop 重置为 0
+ scrollTop.value = 999
+ // 等待 DOM 更新完成
+
+ // 设置一个足够大的值让 scroll-view 滚动到底部
+ scrollTop.value = 9999
+ }
+ }
+ }
+ const scrollContainer = ref(null)
const movetoruler = async () => {
songisopen.value = false;
isweek.value = true;
let savaIndex = -1;
let emptyChildIndices = [];
+ if (openOp.value === 2) {
+ scrollLeft.value = 1;
+ nextTick(() => {
+ scrollLeft.value = 0;
+ bottomItems.value.unshift({
+ name: cardsumit.value.op.name,
+ url: "/static/index/ou.png",
+ target:`#00a8ff`
+ })
+ setTimeout(()=>{
+ bottomItems.value[0].target =`#fff`;
+ },1500)
+ setTimeout(()=>{
+ bottomItems.value[0].target = "";
+ },3000)
+ })
+ return
+ }
timearr.value.forEach((res : any, rowIndex : number) => {
emptyChildIndices = [];
// 遍历 res.children 数组中的每个子元素 child
@@ -762,43 +1100,21 @@
if (savaIndex === -1) {
savaIndex = emptyChildIndices[0]
}
- if (savaIndex !== -1) {
- let saveserve = bigArray[cardsumit.value.op.index[0]].data[cardsumit.value.op.index[1]].type
- timearr.value.forEach((element : any, index : number) => {
- element.children[savaIndex].serve = saveserve;
- element.serve = saveserve
- })
- if (!openOp.value) {
- timearr.value[indexsave.value[0]].children[savaIndex].type = "日常";
- } else if (openOp.value === 1) {
- timearr.value[indexsave.value[0]].children[savaIndex].type = cardsumit.value.weekTime || (cardsumit.value.monthTime + '号');
- } else if (openOp.value === 2) {
- bottomItems.value.push({
- name: cardsumit.value.op.name,
- url: "/static/index/ou.png"
- })
- return
- }
- timearr.value[indexsave.value[0]].children[savaIndex].value = cardsumit.value.op.name;
- } else {
- // let saveserve = bigArray[cardsumit.value.op.index[0]].data[cardsumit.value.op.index[1]].type
- // timearr.value.forEach((element:any,index:number)=>{
- // element.children[savaIndex].serve = saveserve
- // })
- // if (!openOp.value) {
- // timearr.value[indexsave.value[0]].children[indexsave.value[1]].type = "日常";
- // } else if (openOp.value === 1) {
- // timearr.value[indexsave.value[0]].children[indexsave.value[1]].type = cardsumit.value.weekTime || (cardsumit.value.monthTime + '号');
- // } else if (openOp.value === 2) {
- // bottomItems.value.push({
- // name: cardsumit.value.op.name,
- // url: "/static/index/ou.png"
- // })
- // return
- // }
- // timearr.value[indexsave.value[0]].children[indexsave.value[1]].value = cardsumit.value.op.name;
+ let saveserve = bigArray[cardsumit.value.op.index[0]].data[cardsumit.value.op.index[1]].type
+ await nextTick();
+ timearr.value.forEach((element : any, index : number) => {
+ element.children[savaIndex].serve = saveserve;
+ element.serve = saveserve
+ })
+
+ if (!openOp.value) {
+ timearr.value[indexsave.value[0]].children[savaIndex].type = "日常";
+ } else if (openOp.value === 1) {
+ timearr.value[indexsave.value[0]].children[savaIndex].type = cardsumit.value.weekTime || (cardsumit.value.monthTime + '号');
}
+ timearr.value[indexsave.value[0]].children[savaIndex].value = cardsumit.value.op.name;
+
const startHour = Number(openValue.value.time)
const startMinute = Number(cardsumit.value.startTime)
const endMinute = startMinute + 10
@@ -834,7 +1150,9 @@
}
}
defineExpose({
- rulerEnd
+ rulerEnd,
+ rulerMoveEnd,
+ nextItems
})
const moveNumber = ref({
index0: 999,
@@ -1091,21 +1409,37 @@
])
// 切割bigArray
function splitString(str) {
- // 先尝试查找中文全角括号“(”
- let index = str.indexOf('(');
- // 如果没有找到,再查找英文括号"("
- if (index === -1) {
- index = str.indexOf('(');
+ // 使用正则表达式找到所有括号的内容
+ let result = [];
+ let remainingStr = str;
+
+ // 正则匹配最外层括号(支持全角和半角)
+ let regex = /([^((]*)[((]([^))]+)[))]/;
+
+ while (regex.test(remainingStr)) {
+ let match = remainingStr.match(regex);
+ if (match) {
+ // 添加括号前的部分(去掉空白)
+ if (match[1].trim()) {
+ result.push(match[1].trim());
+ }
+ // 添加括号内的内容
+ if (match[2].trim()) {
+ result.push(match[2].trim());
+ }
+ // 更新剩余的字符串
+ remainingStr = remainingStr.replace(match[0], '').trim();
+ }
}
- // 如果找到了括号,则进行切割
- if (index !== -1) {
- const firstPart = str.substring(0, index);
- const secondPart = str.substring(index); // 包含括号及后面的内容
- return [firstPart, secondPart];
+
+ // 如果最后还有剩余部分,也加入结果
+ if (remainingStr.trim()) {
+ result.push(remainingStr.trim());
}
- // 如果没有括号,返回整个字符串作为一个元素的数组
- return [str];
+
+ return result;
}
+
const bigArray =
[
{
@@ -1318,7 +1652,7 @@
"color": "#FFC363",
"data": [
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 0 },
- { "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 1 },
+ { "type": "被褥调整(超时1)(超时2)", "data": "老人踢蹬被褥,调成被褥", "op": 1 },
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 2 },
]
}
@@ -1401,7 +1735,7 @@
{ "type": "一级压疮防护", "data": "准备好体位垫.整理好衣物.进行翻身.扣背" },
{ "type": "二级压疮防护", "data": "翻身扣背垫枕开始操作" },
{ "type": "三级压疮防护", "data": "带压疮翻身扣背垫枕.进行操作" },
- { "type": "一级压疮防护(大体重)", "data": "" },
+ { "type": "一级压疮防护(大体重)(小体重)", "data": "" },
{ "type": "二级压疮防护(大体重)", "data": "" },
{ "type": "三级压疮防护(大体重)", "data": "" }
]
@@ -1498,7 +1832,7 @@
// align-items: center;
width: 100%;
height: calc(100% - 400rpx);
- margin-top: 30rpx;
+ // margin-top: 30rpx;
.scroll-x {
height: 100%;
@@ -1506,22 +1840,28 @@
}
.super-card-container {
- background-color: rgb(241, 247, 253);
+ /* 设置背景图和白色背景 */
+ background: url("/static/index/clearmountain.png") center/cover, rgba(255, 255, 255, 0.5);
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ isolation: isolate;
overflow: hidden;
width: 1650rpx;
height: 920rpx;
border-radius: 20rpx;
- border: 1rpx solid black;
+ border: 2rpx solid #fff;
+ box-shadow: 10rpx 10rpx 20px rgba(0, 0, 0, 0.1);
}
.super-card-time {
display: flex;
justify-content: center;
align-items: center;
- background-color: rgb(233, 239, 257);
+ // background-color: rgb(233, 239, 257);
height: 80rpx;
width: 100rpx;
- border-right: 1rpx solid #BFBFCB;
+ border-right: 1rpx solid transparent;
+ border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
font-weight: 700;
}
@@ -1531,7 +1871,8 @@
align-items: center;
width: 100rpx;
flex-direction: column;
- border-right: 1rpx solid #BFBFCB;
+ border-right: 1rpx solid transparent;
+ border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
}
.super-card-time-card {
@@ -1540,10 +1881,11 @@
align-items: center;
height: 209rpx;
width: calc(100%);
- border-right: 1rpx solid #BFBFCB;
- border-top: 1rpx solid #BFBFCB;
+ // border-right: 1rpx solid transparent;
+ border-top: 1rpx solid transparent;
+ border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
flex-direction: column;
- background-color: #f3f6fc;
+ // background-color: #f3f6fc;
position: relative;
.boom {
@@ -1564,6 +1906,7 @@
text-align: center;
z-index: 10;
/* 确保文字在容器内居中 */
+ background: linear-gradient(to bottom, #ffe2b2, #e3deff);
}
}
}
@@ -1628,7 +1971,7 @@
backdrop-filter: blur(8rpx);
width: 290rpx;
height: 900rpx;
- border-radius: 40rpx;
+ border-radius: 30rpx;
margin-top: 0rpx;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
@@ -1698,6 +2041,8 @@
transition: all 0.4s ease-in-out;
font-weight: 500;
font-size: 30rpx;
+ // background: linear-gradient(to right, #dcdcf9 0%, #dbdcf8 100%);
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
}
.doctorsay-container-button-gun {
@@ -1724,10 +2069,16 @@
}
.doctorsay-container-container {
- width: 1730rpx;
- height: 1344rpx;
- background-color: rgba(255, 255, 255, 0.7);
- border-radius: 60rpx;
+ border: 2rpx solid #fff;
+ width: 1726rpx;
+ height: 1340rpx;
+ // background-color: rgba(255, 255, 255, 0.7);
+ /* 设置背景图和白色背景 */
+ background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.3);
+ backdrop-filter: blur(20rpx);
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ border-radius: 30rpx;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
/* 右下角阴影 */
overflow: hidden;
@@ -1742,36 +2093,48 @@
flex-direction: column;
width: 100%;
+ .super-end-items-all {
+ width: calc(100% - 85rpx);
+ height: 200rpx;
+ margin-left: 40rpx;
+ margin-right: 40rpx;
+ margin-top: 20rpx;
+ }
+
.super-end-items {
display: flex;
- width: calc(100% - 60rpx);
- height: 300rpx;
- margin-left: 30rpx;
- overflow-x: auto;
+ width: calc(100% - 85rpx);
+ height: 200rpx;
.super-end-items-father {
- margin-left: 10rpx;
- margin-top: 15rpx;
+ margin-right: 20rpx;
width: 150rpx;
+ height: 150rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
position: relative;
+ background: linear-gradient(to bottom right, #fff 0%, #dcdcf9 50%, #dbdcf8 100%);
+ border-radius: 25rpx;
+ border: 2rpx solid #fff;
+ box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
+ transition: all 1.5s ease-in-out;
.super-end-items-father-close-father {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
display: flex;
- background-color: #fff;
+ background-color: #0184db;
justify-content: center;
align-items: center;
position: absolute;
- top: -10rpx;
- right: 15rpx;
+ top: 0rpx;
+ right: 0rpx;
z-index: 10;
- background-color: #02abfe;
+ // background-color: #fff;
+ // background: linear-gradient(to bottom right, #fff 0%, #e5d3fb 50%, #cfd9f6 100%);
color: #fff;
}
@@ -1780,15 +2143,16 @@
width: 100rpx;
height: 100rpx;
border-radius: 50%;
+ // margin-bottom: 5rpx;
display: flex;
- background-color: #fff;
+ // background-color: #fff;
justify-content: center;
align-items: center;
/* 让正方形变成圆 */
.super-end-items-img {
- width: 75rpx;
- height: 75rpx;
+ width: 85rpx;
+ height: 85rpx;
}
}
@@ -1797,42 +2161,21 @@
height: 100rpx;
border-radius: 50%;
display: flex;
- background-color: #fff;
+ // background-color: #fff;
justify-content: center;
align-items: center;
animation: shake 0.5s infinite;
/* 让正方形变成圆 */
.super-end-items-img {
- width: 75rpx;
- height: 75rpx;
+ width: 85rpx;
+ height: 85rpx;
}
}
- @keyframes shake {
- 0% {
- transform: rotate(-10deg);
- }
-
- 25% {
- transform: rotate(10deg);
- }
-
- 50% {
- transform: rotate(-10deg);
- }
-
- 75% {
- transform: rotate(10deg);
- }
-
- 100% {
- transform: rotate(-10deg);
- }
- }
.super-end-items-font {
- margin-top: 10rpx;
+ margin-top: -10rpx;
font-size: 25rpx;
}
}
@@ -1840,6 +2183,9 @@
.super-end-font-father {
display: flex;
+ // margin: 20rpx 0;
+ margin-top: 20rpx;
+ margin-bottom: 10rpx;
.super-end-font-gun {
margin-left: 40rpx;
@@ -1861,8 +2207,12 @@
.doctorsay-container-title {
width: 100%;
- height: 130rpx;
- background-color: rgb(241, 246, 253);
+ height: 105rpx;
+ /* 设置背景图和白色背景 */
+ // background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.7);
+ // border-bottom: 2rpx solid #fff;
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ // background-blend-mode: screen;
display: flex;
align-items: center;
justify-content: space-between;
@@ -2039,31 +2389,134 @@
}
}
+ .title-time-delete {
+ width: 55rpx;
+ height: 55rpx;
+ border-radius: 50%;
+ display: flex;
+ background-color: #fff;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ top: 0rpx;
+ right: 0rpx;
+ z-index: 10;
+ background-color: #02abfe;
+ color: #fff;
+ z-index: 999;
+ font-size: 50rpx;
+ }
+
.title-time {
display: flex;
+ width: 100%;
position: relative;
+
.title-time-time {
font-size: 32rpx;
- margin-right: 80rpx;
- margin-top: -10rpx;
+ margin-left: 40rpx;
+ margin-top: 12rpx;
}
.title-time-button {
position: absolute;
- top: -28rpx;
- right: -25rpx;
- width: 80rpx;
- height: 80rpx;
+ top: -4rpx;
+ right: -4rpx;
+ width: 65rpx;
+ height: 60rpx;
}
- .title-time-font{
+
+ .title-time-zhejiao {
position: absolute;
- top: -10rpx;
- right: -20rpx;
- font-size: 25rpx;
+ top: 0rpx;
+ left: 5rpx;
+ width: 40rpx;
+ height: 40rpx;
+ }
+
+ .title-time-font {
+ position: absolute;
+ top: 7rpx;
+ right: 5rpx;
+ font-size: 20rpx;
color: #fff;
}
}
+ .popup-delete {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ backdrop-filter: blur(1rpx);
+ background-color: rgba(89, 109, 154, 0.4);
+ /* 添加毛玻璃效果 */
+ z-index: 999;
+
+ .popup-delete-content {
+ position: absolute;
+ right: 515rpx;
+ display: flex;
+ // justify-content: center;
+ flex-direction: column;
+ align-items: center;
+ width: 800rpx;
+ height: 500rpx;
+ background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.7);
+ border: 2rpx solid #fff;
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ border-radius: 30rpx;
+ box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
+ transition: opacity 0.4s ease;
+
+ .popup-delete-img {
+ width: 250rpx;
+ height: 230rpx;
+ margin-top: 40rpx;
+ margin-bottom: 20rpx;
+ }
+
+ .popup-delete-text {
+ font-size: 30rpx;
+ color: #42474E;
+ }
+
+ .popup-delete-button {
+ display: flex;
+ justify-content: space-around;
+ height: 90rpx;
+ margin-top: 30rpx;
+
+ .popup-delete-button-left {
+ background-color: rgb(2, 171, 254);
+ width: 200rpx;
+ height: 80rpx;
+ border-radius: 40rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #fff;
+ }
+
+ .popup-delete-button-right {
+ background-color: #ced9e8;
+ width: 200rpx;
+ height: 80rpx;
+ border-radius: 40rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 20rpx;
+ }
+ }
+ }
+ }
+
.popup-overlay {
position: fixed;
top: 0;
@@ -2175,16 +2628,28 @@
display: flex;
justify-content: center;
align-items: center;
+ backdrop-filter: blur(1rpx);
+ background-color: rgba(89, 109, 154, 0.4);
/* 添加毛玻璃效果 */
z-index: 999;
.popup-song-contain {
position: absolute;
- right: 420rpx;
- width: 1300rpx;
+ right: 270rpx;
+ width: 1296rpx;
// height: 1500rpx;
- background-color: #fff;
- border-radius: 20rpx;
+ // background-color: #fff;
+ /* 设置背景图和白色背景 */
+ // background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.8);
+ background: url("/static/index/clearmountain.png") center/cover, rgba(255, 255, 255, 0.7);
+
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ border: 2rpx solid #fff;
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+
+ border-radius: 40rpx;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
opacity: 0;
transition: opacity 0.4s ease;
@@ -2258,9 +2723,10 @@
height: 100rpx;
margin-left: 20rpx;
margin-top: 20rpx;
- background-color: rgb(255, 250, 241);
+ background-color: rgb(2, 171, 254);
+ color: #fff;
border-radius: 20rpx;
- border: 1rpx solid rgb(255, 181, 1);
+ border: 1rpx solid rgb(2, 171, 254);
display: flex;
justify-content: center;
align-items: center;
@@ -2272,9 +2738,9 @@
.ri-img {
position: absolute;
top: -4rpx;
- right: -3rpx;
- width: 50rpx;
- height: 50rpx;
+ right: -4rpx;
+ width: 60rpx;
+ height: 60rpx;
}
.time-father {
@@ -2296,6 +2762,7 @@
justify-content: center;
align-items: center;
font-size: 29rpx;
+ box-shadow: 5rpx 5rpx 10rpx rgba(105, 129, 178, 0.4)
}
.time-one-target {
@@ -2311,6 +2778,7 @@
justify-content: center;
align-items: center;
font-size: 29rpx;
+ box-shadow: 5rpx 5rpx 10rpx rgba(105, 129, 178, 0.4)
}
.time-one-hui {
@@ -2318,14 +2786,15 @@
height: 100rpx;
margin-left: 20rpx;
margin-top: 20rpx;
- background-color: rgb(218, 218, 218);
- color: #fff;
+ background-color: #c2c9d3;
+ // color: #fff;
border-radius: 20rpx;
border: 1rpx solid #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 29rpx;
+ box-shadow: 5rpx 5rpx 10rpx rgba(105, 129, 178, 0.4)
}
}
@@ -2353,7 +2822,7 @@
}
.button-father-wrong {
- background-color: rgb(218, 218, 218);
+ background-color: #c2c9d3;
width: 200rpx;
height: 80rpx;
border-radius: 40rpx;
@@ -2493,17 +2962,17 @@
height: calc(100% - 8rpx);
border-radius: 20rpx;
display: flex;
- justify-content: space-evenly;
+ // justify-content: center;
align-items: center;
flex-direction: column;
}
- .title-time-border-blue {
+ .title-time-border-red {
background-color: #dae8fa;
width: calc(100%);
height: calc(100%);
display: flex;
- justify-content: space-evenly;
+ // justify-content: center;
align-items: center;
flex-direction: column;
@@ -2511,54 +2980,209 @@
box-shadow: 0px 20rpx 40rpx #dae8fa;
background:
- /* 左上角水平 */
- linear-gradient(to right, #0184db, #0184db) top left / 60rpx 8rpx no-repeat,
- /* 左上角垂直 */
- linear-gradient(to bottom, #0184db, #0184db) top left / 8rpx 60rpx no-repeat,
-
- /* 右上角水平 */
- linear-gradient(to left, #0184db, #0184db) top right / 60rpx 8rpx no-repeat,
- /* 右上角垂直 */
- linear-gradient(to bottom, #0184db, #0184db) top right / 8rpx 60rpx no-repeat,
-
- /* 左下角水平 */
- linear-gradient(to right, #0184db, #0184db) bottom left / 60rpx 8rpx no-repeat,
- /* 左下角垂直 */
- linear-gradient(to top, #0184db, #0184db) bottom left / 8rpx 60rpx no-repeat,
-
- /* 右下角水平 */
- linear-gradient(to left, #0184db, #0184db) bottom right / 60rpx 8rpx no-repeat,
- /* 右下角垂直 */
- linear-gradient(to top, #0184db, #0184db) bottom right / 8rpx 60rpx no-repeat;
+ linear-gradient(to right, red, red) top left / 60rpx 8rpx no-repeat,
+ /* 左上角垂直 */
+ linear-gradient(to bottom, red, red) top left / 8rpx 60rpx no-repeat,
+ /* 右上角水平 */
+ linear-gradient(to left, red, red) top right / 60rpx 8rpx no-repeat,
+ /* 右上角垂直 */
+ linear-gradient(to bottom, red, red) top right / 8rpx 60rpx no-repeat,
+
+ /* 左下角水平 */
+ linear-gradient(to right, red, red) bottom left / 60rpx 8rpx no-repeat,
+ /* 左下角垂直 */
+ linear-gradient(to top, red, red) bottom left / 8rpx 60rpx no-repeat,
+
+ /* 右下角水平 */
+ linear-gradient(to left, red, red) bottom right / 60rpx 8rpx no-repeat,
+ /* 右下角垂直 */
+ linear-gradient(to top, red, red) bottom right / 8rpx 60rpx no-repeat;
+ }
+
+ .title-time-border-blue {
+ background-color: #dae8fa;
+ width: calc(100%);
+ height: calc(100%);
+ display: flex;
+ // justify-content: center;
+ align-items: center;
+ flex-direction: column;
+
+ /* 调整 box-shadow 使其向下投影 */
+ box-shadow: 0px 20rpx 40rpx #dae8fa;
+
+ background:
+ /* 左上角水平 */
+ linear-gradient(to right, #0184db, #0184db) top left / 60rpx 8rpx no-repeat,
+ /* 左上角垂直 */
+ linear-gradient(to bottom, #0184db, #0184db) top left / 8rpx 60rpx no-repeat,
+
+ /* 右上角水平 */
+ linear-gradient(to left, #0184db, #0184db) top right / 60rpx 8rpx no-repeat,
+ /* 右上角垂直 */
+ linear-gradient(to bottom, #0184db, #0184db) top right / 8rpx 60rpx no-repeat,
+
+ /* 左下角水平 */
+ linear-gradient(to right, #0184db, #0184db) bottom left / 60rpx 8rpx no-repeat,
+ /* 左下角垂直 */
+ linear-gradient(to top, #0184db, #0184db) bottom left / 8rpx 60rpx no-repeat,
+
+ /* 右下角水平 */
+ linear-gradient(to left, #0184db, #0184db) bottom right / 60rpx 8rpx no-repeat,
+ /* 右下角垂直 */
+ linear-gradient(to top, #0184db, #0184db) bottom right / 8rpx 60rpx no-repeat;
}
.title-time-border-yellow {
margin: 10rpx;
- border: 1rpx solid #dae8fa;
- // background-color: #fffaf1;
- // background:linear-gradient(to bottom, #f1eeff, #e3deff);
- background:linear-gradient(to bottom, #fff1db, #ffe2b2);
+ border: 2rpx solid #d0d8e0;
+ background: linear-gradient(to bottom, #fff1db, #ffe2b2);
width: calc(100% - 20rpx);
height: calc(100% - 20rpx);
border-radius: 20rpx;
display: flex;
- justify-content: space-evenly;
align-items: center;
flex-direction: column;
+ box-shadow: 8rpx 8rpx 16rpx rgba(255, 138, 0, 0.7);
+ // clip-path: polygon(30rpx 0, 100% 0, 100% 100%, 0 100%, 0 30rpx);
+ }
+
+ .title-time-border-yellow-active-transparent {
+ margin: 10rpx;
+ border: 4rpx dashed rgb(255, 138, 0);
+ background: linear-gradient(to bottom, #fff1db, #ffe2b2);
+ width: calc(100% - 26rpx);
+ height: calc(100% - 26rpx);
+ border-radius: 20rpx;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ opacity: 0.3;
+ // box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
+ box-shadow: 8rpx 8rpx 16rpx rgba(255, 138, 0, 0.7);
+ }
+
+ .title-time-border-yellow-active {
+ margin: 10rpx;
+ border: 1rpx solid #dae8fa;
+ background: linear-gradient(to bottom, #fff1db, #ffe2b2);
+ width: calc(100% - 20rpx);
+ height: calc(100% - 20rpx);
+ border-radius: 20rpx;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ animation: shakesmall 0.8s infinite;
+ // box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
+ box-shadow: 8rpx 8rpx 16rpx rgba(255, 138, 0, 0.7);
+ }
+
+ .title-time-border-pouple-active-transparent {
+ margin: 10rpx;
+ border: 4rpx dashed #7B61FF;
+ background: linear-gradient(to bottom, #f1eeff, #e3deff);
+ width: calc(100% - 26rpx);
+ height: calc(100% - 26rpx);
+ border-radius: 20rpx;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ opacity: 0.3;
+ // box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
+ box-shadow: 8rpx 8rpx 16rpx rgba(123, 97, 255, 0.7);
}
.title-time-border-pouple {
margin: 10rpx;
border: 1rpx solid #dae8fa;
- background:linear-gradient(to bottom, #f1eeff, #e3deff);
+ background: linear-gradient(to bottom, #f1eeff, #e3deff);
width: calc(100% - 20rpx);
height: calc(100% - 20rpx);
border-radius: 20rpx;
display: flex;
- justify-content: space-evenly;
align-items: center;
flex-direction: column;
+ // box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
+ box-shadow: 8rpx 8rpx 16rpx rgba(123, 97, 255, 0.7);
+ }
+
+ .title-time-border-pouple-active {
+ margin: 10rpx;
+ border: 1rpx solid #dae8fa;
+ background: linear-gradient(to bottom, #f1eeff, #e3deff);
+ width: calc(100% - 20rpx);
+ height: calc(100% - 20rpx);
+ border-radius: 20rpx;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ animation: shakesmall 1s infinite;
+ // box-shadow: 8rpx 8rpx 16px rgba(0, 0, 0, 0.2);
+ box-shadow: 8rpx 8rpx 16rpx rgba(123, 97, 255, 0.7);
+ }
+
+ .down-icons {
+ margin-top: 10rpx;
+ width: 100%;
+ height: 60rpx;
+ background-color: rgb(255, 216, 126);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .icon {
+ margin: 0 5rpx;
+ font-size: 20rpx;
+ padding: 5rpx 10rpx;
+ background-color: rgb(255, 138, 0);
+ color: #fff;
+ border-radius: 5rpx;
+ }
+ }
+
+ @keyframes shake {
+ 0% {
+ transform: rotate(-10deg);
+ }
+
+ 25% {
+ transform: rotate(10deg);
+ }
+
+ 50% {
+ transform: rotate(-10deg);
+ }
+
+ 75% {
+ transform: rotate(10deg);
+ }
+
+ 100% {
+ transform: rotate(-10deg);
+ }
+ }
+
+ @keyframes shakesmall {
+ 0% {
+ transform: rotate(-2deg);
+ }
+
+ 25% {
+ transform: rotate(2deg);
+ }
+
+ 50% {
+ transform: rotate(-2deg);
+ }
+
+ 75% {
+ transform: rotate(2deg);
+ }
+
+ 100% {
+ transform: rotate(-2deg);
+ }
}
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 626ace3..5fb4efa 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -3,6 +3,32 @@
{{savename}}
+
+
+
+ {{saveruler.time}}
+
+
+
+ {{saveruler.type}}
+
+
+
+ {{splitString(saveruler.value)[0]}}
+
+
+
+
+ {{splitString(saveruler.value)[1]}}
+
+
+
+
+
@@ -25,7 +51,7 @@
+ @saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" />
@@ -99,26 +125,39 @@
index0: 999,
index1: 999,
})
+ //翻页计时器
+ const canTrigger = ref(true);
//全局获得x轴和y轴
const getxyrel = (event) => {
- // event.stopPropagation();
- // event.preventDefault();
const touch = event.touches[0];
clientX.value = 2 * (Math.floor(touch.clientX) - 100);
clientY.value = 2 * (Math.floor(touch.clientY) - 55);
- // console.log("?????",clientX.value,clientY.value)
// 遍历数组,找到点击区域所在的对象
const translateX = Math.floor(touch.clientX) - 50;
const translateY = Math.floor(touch.clientY) - 25;
+
const clickedItem = fangkuaiValue.value.find(item => {
- return translateX >= item.left && translateX <= item.right &&
- translateY >= item.top && translateY <= item.bottom;
+
+ if (translateX >= item.left && translateX <= item.right &&
+ translateY >= item.top && translateY <= item.bottom) {
+ // console.log("AAAA",item.left,item.right,item.top,item.bottom)
+ }
+
+ return translateX >= Math.floor(item.left) && translateX <= Math.floor(item.right) &&
+ translateY >= Math.floor(item.top) && translateY <= Math.floor(item.bottom);
});
- // 如果找到,则输出该对象的 index0 和 index1
if (clickedItem) {
const { index0, index1 } = clickedItem.dataset;
indexNumber.value.index0 = index0
indexNumber.value.index1 = index1
+ // console.log("????",indexNumber.value.index0 ,indexNumber.value.index1)
+ if (clientX.value > 2050 && canTrigger.value) {
+ ruler.value?.nextItems();
+ canTrigger.value = false;
+ setTimeout(() => {
+ canTrigger.value = true;
+ }, 1000);
+ }
} else {
indexNumber.value.index0 = 999
indexNumber.value.index1 = 999
@@ -129,16 +168,27 @@
const fangkuaiValue = ref([])
//所有适合的方块
- const openname = (res : string, fangkuai : Object) => {
+ const openname = (res : string, fangkuai : any) => {
savename.value = res;
canmove.value = false;
fangkuaiValue.value = fangkuai
}
+ const changefangkuang = (fangkuang : any) => {
+ fangkuaiValue.value = fangkuang
+ console.log("!!!!", fangkuaiValue.value)
+ }
+ //移动方块
+ const saveruler = ref({})
+ const openruler = (res : string, fangkuai : any) => {
+ saveruler.value = res
+ canmove.value = false;
+ fangkuaiValue.value = fangkuai
+ }
//解决拖动bug
const closename = () => {
savename.value = "";
canmove.value = true;
- fangkuaiValue.value = []
+ // fangkuaiValue.value = []
}
const ruler = ref(null)
//结束、禁止滑动
@@ -150,8 +200,14 @@
index0: 999,
index1: 999,
};
- ruler.value?.rulerEnd(savename.value);
+
+ if (savename.value) {
+ ruler.value?.rulerEnd(savename.value);
+ } else if (saveruler.value.type) {
+ ruler.value?.rulerMoveEnd(saveruler.value);
+ }
savename.value = "";
+ saveruler.value = {};
}
//节流函数
function throttle(fn, delay) {
@@ -164,6 +220,37 @@
}
};
}
+ function splitString(str) {
+ // 使用正则表达式找到所有括号的内容
+ let result = [];
+ let remainingStr = str;
+
+ // 正则匹配最外层括号(支持全角和半角)
+ let regex = /([^((]*)[((]([^))]+)[))]/;
+
+ while (regex.test(remainingStr)) {
+ let match = remainingStr.match(regex);
+ if (match) {
+ // 添加括号前的部分(去掉空白)
+ if (match[1].trim()) {
+ result.push(match[1].trim());
+ }
+ // 添加括号内的内容
+ if (match[2].trim()) {
+ result.push(match[2].trim());
+ }
+ // 更新剩余的字符串
+ remainingStr = remainingStr.replace(match[0], '').trim();
+ }
+ }
+
+ // 如果最后还有剩余部分,也加入结果
+ if (remainingStr.trim()) {
+ result.push(remainingStr.trim());
+ }
+
+ return result;
+ }
// 生命周期钩子
onShow(() => {
//首次加载和跳转回来需要重新做个动画
@@ -279,4 +366,83 @@
}
}
}
+
+ .title-time-border-yellow {
+ width: 255rpx;
+ height: 189rpx;
+ margin: 10rpx;
+ border: 1rpx solid #dae8fa;
+ background: linear-gradient(to bottom, #fff1db, #ffe2b2);
+ // width: calc(100% - 20rpx);
+ // height: calc(100% - 20rpx);
+ border-radius: 20rpx;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ position: absolute;
+ z-index: 10;
+ }
+
+ .title-time-border-pouple {
+ width: 255rpx;
+ height: 189rpx;
+ margin: 10rpx;
+ border: 1rpx solid #dae8fa;
+ background: linear-gradient(to bottom, #f1eeff, #e3deff);
+ // width: calc(100% - 20rpx);
+ // height: calc(100% - 20rpx);
+ border-radius: 20rpx;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ position: absolute;
+ z-index: 10;
+ }
+
+ .title-time {
+ display: flex;
+ width: 100%;
+ position: relative;
+
+ .title-time-time {
+ font-size: 32rpx;
+ margin-left: 27rpx;
+ margin-top: 12rpx;
+ }
+
+ .title-time-button {
+ position: absolute;
+ top: -5rpx;
+ right: 0rpx;
+ width: 70rpx;
+ height: 70rpx;
+ }
+
+ .title-time-font {
+ position: absolute;
+ top: 7rpx;
+ right: 5rpx;
+ font-size: 23rpx;
+ color: #fff;
+ }
+ }
+
+ .down-icons {
+ margin-top: 20rpx;
+ width: 100%;
+ height: 50rpx;
+ background-color: rgb(255, 216, 126);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .icon {
+ margin: 0 5rpx;
+ font-size: 20rpx;
+ padding: 5rpx 10rpx;
+ background-color: rgb(255, 138, 0);
+ color: #fff;
+ border-radius: 5rpx;
+ }
+ }
\ No newline at end of file
diff --git a/static/index/clearmountain.png b/static/index/clearmountain.png
new file mode 100644
index 0000000..854d294
Binary files /dev/null and b/static/index/clearmountain.png differ
diff --git a/static/index/deleteicon.png b/static/index/deleteicon.png
new file mode 100644
index 0000000..e0cb99f
Binary files /dev/null and b/static/index/deleteicon.png differ
diff --git a/static/index/pouplezhejiao.png b/static/index/pouplezhejiao.png
new file mode 100644
index 0000000..3290307
Binary files /dev/null and b/static/index/pouplezhejiao.png differ
diff --git a/static/index/yellowzhejiao.png b/static/index/yellowzhejiao.png
new file mode 100644
index 0000000..5b27551
Binary files /dev/null and b/static/index/yellowzhejiao.png differ
diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js
index b7c25b5..de8734f 100644
--- a/unpackage/dist/dev/app-plus/app-service.js
+++ b/unpackage/dist/dev/app-plus/app-service.js
@@ -31,6 +31,20 @@ if (uni.restoreGlobal) {
}
(function(vue) {
"use strict";
+ const ON_SHOW = "onShow";
+ const ON_LOAD = "onLoad";
+ function formatAppLog(type, filename, ...args) {
+ if (uni.__log__) {
+ uni.__log__(type, filename, ...args);
+ } else {
+ console[type].apply(console, [...args, filename]);
+ }
+ }
+ const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => {
+ !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target);
+ };
+ const onShow = /* @__PURE__ */ createHook(ON_SHOW);
+ const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
__name: "index",
props: {
@@ -2212,7 +2226,7 @@ if (uni.restoreGlobal) {
type: Object
}
},
- emits: ["darkchange", "savename", "closename"],
+ emits: ["darkchange", "savename", "saveruler", "closename", "changefangkuang"],
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
vue.watch(
@@ -2225,12 +2239,61 @@ if (uni.restoreGlobal) {
() => props.isshow,
() => {
bottomisShaking.value = false;
+ shakyTable.value = false;
}
);
vue.onMounted(() => {
downList.value = bigArray[0].data;
});
const bottomItems = vue.ref([
+ {
+ name: "纸尿裤",
+ url: "/static/index/niao.png"
+ },
+ {
+ name: "呕吐",
+ url: "/static/index/tu.png"
+ },
+ {
+ name: "吸痰",
+ url: "/static/index/ou.png"
+ },
+ {
+ name: "大便",
+ url: "/static/index/baba.png"
+ },
+ {
+ name: "纸尿裤",
+ url: "/static/index/niao.png"
+ },
+ {
+ name: "呕吐",
+ url: "/static/index/tu.png"
+ },
+ {
+ name: "吸痰",
+ url: "/static/index/ou.png"
+ },
+ {
+ name: "大便",
+ url: "/static/index/baba.png"
+ },
+ {
+ name: "纸尿裤",
+ url: "/static/index/niao.png"
+ },
+ {
+ name: "呕吐",
+ url: "/static/index/tu.png"
+ },
+ {
+ name: "吸痰",
+ url: "/static/index/ou.png"
+ },
+ {
+ name: "大便",
+ url: "/static/index/baba.png"
+ },
{
name: "纸尿裤",
url: "/static/index/niao.png"
@@ -2265,6 +2328,7 @@ if (uni.restoreGlobal) {
const weekDays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"];
const days = Array.from({ length: 31 }, (_, i) => (i + 1).toString().padStart(2, "0"));
const isweek = vue.ref(true);
+ const scrollLeft = vue.ref(0);
const scrollTop = vue.ref(0);
const downList = vue.ref();
const rightList = vue.ref([
@@ -2275,17 +2339,57 @@ if (uni.restoreGlobal) {
const songisopen = vue.ref(false);
const isopacity = vue.ref(false);
const songisopacity = vue.ref(false);
+ const deleteisopen = vue.ref(false);
+ const deletename = vue.ref("");
+ const deleteisopacity = vue.ref(false);
const currentNumber = vue.ref(1);
+ const scrollKey = vue.ref(0);
+ function pseudoRandom(index0, index1) {
+ const seed = index0 * 55.9898 + index1 * 78.233;
+ return Math.abs(Math.sin(seed) * 43758.5453) % 1;
+ }
+ function computeDelay(index0, index1) {
+ const range = 2;
+ return pseudoRandom(index0, index1) * range;
+ }
const changecurrentNumber = (event) => {
currentNumber.value = event.detail.current;
+ vue.nextTick(() => {
+ scrollTop.value = moveDownNumber.value;
+ });
+ };
+ const dragOffset = vue.ref(0);
+ const moveDownNumber = vue.ref(0);
+ function handleScrolltime(e) {
+ let num = e.detail.scrollTop;
+ let formattedNum = parseFloat(num.toFixed(2));
+ moveDownNumber.value = formattedNum;
+ }
+ const changeBug = vue.ref(true);
+ const nextItems = () => {
+ currentNumber.value > 2 ? currentNumber.value = 0 : currentNumber.value++;
};
const getClass = (item, index0, index1) => {
- if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
+ if (!props.canmove && props.liang.index0 === index0 && redNameindex0.value.includes(index0 + currentNumber.value * 6) && props.liang.index1 === index1) {
+ return "title-time-border-red";
+ } else if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
return "title-time-border-blue";
} else if (item.type === "日常") {
- return "title-time-border-yellow";
+ if (flyNumber.value.index0 === index0 + currentNumber.value * 6 && flyNumber.value.index1 === index1 && shakyTable.value) {
+ return "title-time-border-yellow-active-transparent";
+ } else if (shakyTable.value) {
+ return "title-time-border-yellow-active";
+ } else {
+ return "title-time-border-yellow";
+ }
} else if (item.type) {
- return "title-time-border-pouple";
+ if (flyNumber.value.index0 === index0 + currentNumber.value * 6 && flyNumber.value.index1 === index1 && shakyTable.value) {
+ return "title-time-border-pouple-active-transparent";
+ } else if (shakyTable.value) {
+ return "title-time-border-pouple-active";
+ } else {
+ return "title-time-border-pouple";
+ }
}
return "title-time-border";
};
@@ -2321,39 +2425,90 @@ if (uni.restoreGlobal) {
const openY = vue.ref(0);
const flyNumber = vue.ref({
index0: 999,
- index1: 999
+ index1: 999,
+ serve: ""
});
- const deletebottom = (index) => {
- bottomItems.value.splice(index, 1);
+ const deletebottomindex = vue.ref(-1);
+ const deletedownisopen = vue.ref(false);
+ const deletedownisopacity = vue.ref(false);
+ const deletebottom = (index, name) => {
+ bottomisShaking.value = false;
+ deletebottomindex.value = index;
+ shakyTable.value = false;
+ deletedownisopacity.value = false;
+ deletedownisopen.value = true;
+ deletename.value = name;
+ setTimeout(() => {
+ deletedownisopacity.value = true;
+ }, 200);
};
+ const deleteindex = vue.ref([-1, -1]);
+ const deleteItems = (name, index0, index1) => {
+ deleteindex.value = [-1, -1];
+ shakyTable.value = false;
+ bottomisShaking.value = false;
+ deleteisopacity.value = false;
+ deleteisopen.value = true;
+ deleteindex.value = [index0 + currentNumber.value * 6, index1];
+ deletename.value = name;
+ setTimeout(() => {
+ deleteisopacity.value = true;
+ }, 200);
+ };
+ const rulerTouchClick = (item, index0, index1, e) => {
+ moveX.value = Math.floor(e.touches[0].pageX);
+ moveY.value = Math.floor(e.touches[0].pageY);
+ if (item.value) {
+ const query = uni.createSelectorQuery();
+ query.selectAll(".super-card-time-card").boundingClientRect((data) => {
+ data.forEach(async (res) => {
+ if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
+ if (res.left > 200 && res.left < 500) {
+ openX.value = Math.floor(res.left) + 520;
+ } else {
+ openX.value = Math.floor(res.left);
+ }
+ if (res.top > 140 && res.top < 300) {
+ openY.value = Math.floor(res.top) + 250;
+ } else {
+ openY.value = Math.floor(res.top);
+ }
+ await vue.nextTick();
+ isopen.value = true;
+ isopacity.value = false;
+ setTimeout(() => {
+ isopacity.value = true;
+ }, 100);
+ }
+ });
+ }).exec();
+ }
+ };
+ const shakyTable = vue.ref(false);
const rulerTouchStart = (item, index0, index1, e) => {
+ scrollTop.value = moveDownNumber.value;
moveX.value = Math.floor(e.touches[0].pageX);
moveY.value = Math.floor(e.touches[0].pageY);
timer.value = setTimeout(() => {
if (item.value) {
+ flyNumber.value.serve = item.serve;
flyNumber.value.index0 = index0 + currentNumber.value * 6;
flyNumber.value.index1 = index1;
+ indexsave.value = [-1, -1];
+ const reldata = [];
+ isTuoing.value = true;
const query = uni.createSelectorQuery();
query.selectAll(".super-card-time-card").boundingClientRect((data) => {
data.forEach(async (res) => {
- if (res.left > 200 && res.left < 1067 && res.top < 600 && res.top > 170 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
- if (res.left > 200 && res.left < 500) {
- openX.value = Math.floor(res.left) + 520;
- } else {
- openX.value = Math.floor(res.left);
- }
- openY.value = Math.floor(res.top);
- await vue.nextTick();
- isopen.value = true;
- isopacity.value = false;
- setTimeout(() => {
- isopacity.value = true;
- }, 100);
+ if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140) {
+ shakyTable.value = true;
+ reldata.push(res);
}
});
}).exec();
+ emit("saveruler", item, reldata);
}
- }, 200);
+ }, 100);
};
const rulerTouchMove = (e) => {
const moveXa = Math.floor(e.touches[0].pageX);
@@ -2366,6 +2521,7 @@ if (uni.restoreGlobal) {
}
};
const rulerTouchEnd = () => {
+ isTuoing.value = false;
if (timer.value) {
clearTimeout(timer.value);
timer.value = null;
@@ -2403,6 +2559,7 @@ if (uni.restoreGlobal) {
res.children.push({ value: "" });
});
}
+ deleteisopen.value = false;
};
const longPressTimer = vue.ref(null);
const isScrolling = vue.ref(false);
@@ -2418,20 +2575,32 @@ if (uni.restoreGlobal) {
const isBack = vue.ref(false);
const saveX = vue.ref(0);
const saveY = vue.ref(0);
+ const isTuoing = vue.ref(false);
+ const redNameindex0 = vue.ref([]);
const handleTouchStart = (item, index, e) => {
+ redNameindex0.value = [];
+ shakyTable.value = false;
saveX.value = Math.floor(e.touches[0].pageX);
saveY.value = Math.floor(e.touches[0].pageY);
longPressTimer.value = setTimeout(() => {
if (isScrolling.value)
return;
+ timearr.value.forEach((element0, index0) => {
+ element0.children.forEach((element1) => {
+ if (element1.serve === item && element1.value) {
+ redNameindex0.value.push(index0);
+ }
+ });
+ });
isBack.value = true;
downmenuIndex.value = index;
indexsave.value = [-1, -1];
+ isTuoing.value = true;
const reldata = [];
const query = uni.createSelectorQuery();
query.selectAll(".super-card-time-card").boundingClientRect((data) => {
data.forEach((res) => {
- if (res.left > 200 && res.left < 1067 && res.top < 600 && res.top > 170) {
+ if (res.left > 200 && res.left < 1067 && res.top < 570 && res.top > 140) {
reldata.push(res);
}
});
@@ -2457,6 +2626,7 @@ if (uni.restoreGlobal) {
}
};
const handleTouchEnd = () => {
+ isTuoing.value = false;
if (longPressTimer.value) {
clearTimeout(longPressTimer.value);
longPressTimer.value = null;
@@ -2464,11 +2634,23 @@ if (uni.restoreGlobal) {
};
const bottomTimer = vue.ref(null);
const bottomisShaking = vue.ref(false);
- const bottomTouchStart = () => {
+ const bottomTouchStart = (e) => {
+ saveX.value = Math.floor(e.touches[0].pageX);
+ saveY.value = Math.floor(e.touches[0].pageY);
bottomTimer.value = setTimeout(() => {
bottomisShaking.value = true;
}, 500);
};
+ const bottomTouchMove = (e) => {
+ const moveX2 = Math.floor(e.touches[0].pageX);
+ const moveY2 = Math.floor(e.touches[0].pageY);
+ if (Math.abs(moveX2 - saveX.value) > 0 || Math.abs(moveY2 - saveY.value) > 0) {
+ if (bottomTimer.value) {
+ clearTimeout(bottomTimer.value);
+ bottomTimer.value = null;
+ }
+ }
+ };
const bottomTouchEnd = () => {
if (bottomTimer.value) {
clearTimeout(bottomTimer.value);
@@ -2550,11 +2732,89 @@ if (uni.restoreGlobal) {
clickOp(0, openValue.value.array[0].type, openValue.value.array[0].op);
}
};
+ const rulerMoveEnd = (object) => {
+ if (props.liang.index0 !== 999 && object.type) {
+ indexsave.value = [props.liang.index0 + currentNumber.value * 6, props.liang.index1];
+ let savaIndex = -1;
+ let emptyChildIndices = [];
+ timearr.value.forEach((res, rowIndex) => {
+ emptyChildIndices = [];
+ res.children.forEach((child, index) => {
+ if (child.value === null || child.value === "" || child.value === void 0) {
+ const isEmptyInAllRows = timearr.value.every((otherRes) => {
+ const otherChild = otherRes.children[index];
+ return otherChild === void 0 || otherChild.value === null || otherChild.value === "" || otherChild.value === void 0;
+ });
+ if (isEmptyInAllRows) {
+ emptyChildIndices.push(index);
+ }
+ }
+ });
+ res.children.forEach((item, index) => {
+ if (item.serve == object.serve) {
+ savaIndex = index;
+ }
+ });
+ });
+ if (savaIndex === -1) {
+ savaIndex = emptyChildIndices[0];
+ }
+ let haveAnyItem = 0;
+ let saveServe = "";
+ timearr.value.forEach((element) => {
+ if (element.children[0].value) {
+ haveAnyItem++;
+ saveServe = element.children[0].serve;
+ }
+ });
+ if (haveAnyItem > 1) {
+ timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { value: "", serve: saveServe };
+ } else {
+ timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { value: "" };
+ }
+ timearr.value[indexsave.value[0]].children[savaIndex] = object;
+ const parentHour = parseInt(timearr.value[indexsave.value[0]].time, 10);
+ object.time = object.time.split("-").map((item) => {
+ const parts = item.split(":");
+ return `${parentHour}:${parts[1]}`;
+ }).join("-");
+ const shouldAdd = timearr.value.some((obj) => {
+ const children = obj.children;
+ return children[children.length - 1].value.trim() !== "";
+ });
+ if (shouldAdd) {
+ timearr.value.forEach((obj) => {
+ obj.children.push({ value: "" });
+ });
+ scrollTop.value = 999;
+ scrollTop.value = 9999;
+ }
+ }
+ };
+ const scrollContainer = vue.ref(null);
const movetoruler = async () => {
songisopen.value = false;
isweek.value = true;
let savaIndex = -1;
let emptyChildIndices = [];
+ if (openOp.value === 2) {
+ scrollLeft.value = 1;
+ vue.nextTick(() => {
+ scrollLeft.value = 0;
+ bottomItems.value.unshift({
+ name: cardsumit.value.op.name,
+ url: "/static/index/ou.png",
+ target: `#00a8ff`
+ });
+ setTimeout(() => {
+ bottomItems.value[0].target = `#fff`;
+ }, 1500);
+ setTimeout(() => {
+ bottomItems.value[0].target = "";
+ }, 3e3);
+ });
+ return;
+ }
timearr.value.forEach((res, rowIndex) => {
emptyChildIndices = [];
res.children.forEach((child, index) => {
@@ -2577,25 +2837,18 @@ if (uni.restoreGlobal) {
if (savaIndex === -1) {
savaIndex = emptyChildIndices[0];
}
- if (savaIndex !== -1) {
- let saveserve = bigArray[cardsumit.value.op.index[0]].data[cardsumit.value.op.index[1]].type;
- timearr.value.forEach((element, index) => {
- element.children[savaIndex].serve = saveserve;
- element.serve = saveserve;
- });
- if (!openOp.value) {
- timearr.value[indexsave.value[0]].children[savaIndex].type = "日常";
- } else if (openOp.value === 1) {
- timearr.value[indexsave.value[0]].children[savaIndex].type = cardsumit.value.weekTime || cardsumit.value.monthTime + "号";
- } else if (openOp.value === 2) {
- bottomItems.value.push({
- name: cardsumit.value.op.name,
- url: "/static/index/ou.png"
- });
- return;
- }
- timearr.value[indexsave.value[0]].children[savaIndex].value = cardsumit.value.op.name;
+ let saveserve = bigArray[cardsumit.value.op.index[0]].data[cardsumit.value.op.index[1]].type;
+ await vue.nextTick();
+ timearr.value.forEach((element, index) => {
+ element.children[savaIndex].serve = saveserve;
+ element.serve = saveserve;
+ });
+ if (!openOp.value) {
+ timearr.value[indexsave.value[0]].children[savaIndex].type = "日常";
+ } else if (openOp.value === 1) {
+ timearr.value[indexsave.value[0]].children[savaIndex].type = cardsumit.value.weekTime || cardsumit.value.monthTime + "号";
}
+ timearr.value[indexsave.value[0]].children[savaIndex].value = cardsumit.value.op.name;
const startHour = Number(openValue.value.time);
const startMinute = Number(cardsumit.value.startTime);
const endMinute = startMinute + 10;
@@ -2621,7 +2874,9 @@ if (uni.restoreGlobal) {
}
};
__expose({
- rulerEnd
+ rulerEnd,
+ rulerMoveEnd,
+ nextItems
});
const moveNumber = vue.ref({
index0: 999,
@@ -2855,16 +3110,25 @@ if (uni.restoreGlobal) {
}
]);
function splitString(str) {
- let index = str.indexOf("(");
- if (index === -1) {
- index = str.indexOf("(");
+ let result = [];
+ let remainingStr = str;
+ let regex = /([^((]*)[((]([^))]+)[))]/;
+ while (regex.test(remainingStr)) {
+ let match = remainingStr.match(regex);
+ if (match) {
+ if (match[1].trim()) {
+ result.push(match[1].trim());
+ }
+ if (match[2].trim()) {
+ result.push(match[2].trim());
+ }
+ remainingStr = remainingStr.replace(match[0], "").trim();
+ }
}
- if (index !== -1) {
- const firstPart = str.substring(0, index);
- const secondPart = str.substring(index);
- return [firstPart, secondPart];
+ if (remainingStr.trim()) {
+ result.push(remainingStr.trim());
}
- return [str];
+ return result;
}
const bigArray = [
{
@@ -3077,7 +3341,7 @@ if (uni.restoreGlobal) {
"color": "#FFC363",
"data": [
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 0 },
- { "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 1 },
+ { "type": "被褥调整(超时1)(超时2)", "data": "老人踢蹬被褥,调成被褥", "op": 1 },
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 2 }
]
}
@@ -3159,7 +3423,7 @@ if (uni.restoreGlobal) {
{ "type": "一级压疮防护", "data": "准备好体位垫.整理好衣物.进行翻身.扣背" },
{ "type": "二级压疮防护", "data": "翻身扣背垫枕开始操作" },
{ "type": "三级压疮防护", "data": "带压疮翻身扣背垫枕.进行操作" },
- { "type": "一级压疮防护(大体重)", "data": "" },
+ { "type": "一级压疮防护(大体重)(小体重)", "data": "" },
{ "type": "二级压疮防护(大体重)", "data": "" },
{ "type": "三级压疮防护(大体重)", "data": "" }
]
@@ -3247,19 +3511,20 @@ if (uni.restoreGlobal) {
]
}
];
- const __returned__ = { props, bottomItems, timeArray, weekDays, days, isweek, scrollTop, downList, rightList, isopen, songisopen, isopacity, songisopacity, currentNumber, changecurrentNumber, getClass, doctorsayList, rightListIndex, upmenuIndex, downmenuIndex, underFans, roomTar, emit, darkFanschange, changLeft, rightListClick, timer, elementsInfo, moveX, moveY, openX, openY, flyNumber, deletebottom, rulerTouchStart, rulerTouchMove, rulerTouchEnd, deleteRuler, longPressTimer, isScrolling, get scrollTimeout() {
+ const __returned__ = { props, bottomItems, timeArray, weekDays, days, isweek, scrollLeft, scrollTop, downList, rightList, isopen, songisopen, isopacity, songisopacity, deleteisopen, deletename, deleteisopacity, currentNumber, scrollKey, pseudoRandom, computeDelay, changecurrentNumber, dragOffset, moveDownNumber, handleScrolltime, changeBug, nextItems, getClass, doctorsayList, rightListIndex, upmenuIndex, downmenuIndex, underFans, roomTar, emit, darkFanschange, changLeft, rightListClick, timer, elementsInfo, moveX, moveY, openX, openY, flyNumber, deletebottomindex, deletedownisopen, deletedownisopacity, deletebottom, deleteindex, deleteItems, rulerTouchClick, shakyTable, rulerTouchStart, rulerTouchMove, rulerTouchEnd, deleteRuler, longPressTimer, isScrolling, get scrollTimeout() {
return scrollTimeout;
}, set scrollTimeout(v) {
scrollTimeout = v;
- }, handleScroll, isBack, saveX, saveY, handleTouchStart, isblue, handleTouchMove, handleTouchEnd, bottomTimer, bottomisShaking, bottomTouchStart, bottomTouchEnd, openValue, cardsumit, openOp, clickOp, clickTime, clickweek, clickmonth, indexsave, rulerEnd, movetoruler, moveNumber, timearr, splitString, bigArray };
+ }, handleScroll, isBack, saveX, saveY, isTuoing, redNameindex0, handleTouchStart, isblue, handleTouchMove, handleTouchEnd, bottomTimer, bottomisShaking, bottomTouchStart, bottomTouchMove, bottomTouchEnd, openValue, cardsumit, openOp, clickOp, clickTime, clickweek, clickmonth, indexsave, rulerEnd, rulerMoveEnd, scrollContainer, movetoruler, moveNumber, timearr, splitString, bigArray };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
const _imports_0$1 = "/static/index/shexiang.png";
const _imports_1 = "/static/index/cheng.png";
+ const _imports_2 = "/static/index/deleteicon.png";
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
- var _a, _b, _c, _d, _e, _f;
+ var _a, _b, _c, _d;
return vue.openBlock(), vue.createElementBlock(
vue.Fragment,
null,
@@ -3270,7 +3535,10 @@ if (uni.restoreGlobal) {
{
class: "right-container",
style: vue.normalizeStyle($props.isshow ? { opacity: `1` } : { opacity: `0` }),
- onClick: _cache[13] || (_cache[13] = ($event) => $setup.bottomisShaking = false)
+ onClick: _cache[20] || (_cache[20] = ($event) => {
+ $setup.bottomisShaking = false;
+ $setup.shakyTable = false;
+ })
},
[
vue.createElementVNode("view", { class: "right-container-title-nav" }, [
@@ -3401,7 +3669,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode("view", null, [
vue.createElementVNode("view", {
class: "doctorsay-container-card",
- style: { "background": "linear-gradient(135deg, #f78499 0%, #f56f87 100%)" }
+ style: { "background": "linear-gradient(135deg, #01e7be 0%, #0080dd 100%)" }
}, [
vue.createElementVNode("image", {
class: "doctorsay-container-card-img",
@@ -3494,6 +3762,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode("view", { class: "super-card" }, [
vue.createElementVNode("view", { class: "super-card-container" }, [
vue.createElementVNode("swiper", {
+ "disable-touch": !$props.canmove || $setup.shakyTable,
current: $setup.currentNumber,
class: "scroll-x",
circular: "",
@@ -3507,7 +3776,7 @@ if (uni.restoreGlobal) {
null,
vue.renderList([1, 2, 3, 4], (item, index) => {
return vue.createElementVNode("swiper-item", { key: index }, [
- vue.createElementVNode("view", { style: { "display": "flex" } }, [
+ vue.createElementVNode("view", { style: { "display": "flex", "box-shadow": "10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1)", "background": "linear-gradient(to right, #c4dbf4,#c9c2ef, #c6dcf3)" } }, [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
@@ -3517,7 +3786,7 @@ if (uni.restoreGlobal) {
"view",
{
class: "super-card-time",
- style: vue.normalizeStyle($setup.rightListIndex ? { width: "275rpx" } : { width: "206rpx" })
+ style: vue.normalizeStyle($setup.rightListIndex ? { width: "274rpx" } : { width: "206rpx" })
},
vue.toDisplayString(item0.time + ":00"),
5
@@ -3533,7 +3802,8 @@ if (uni.restoreGlobal) {
vue.createElementVNode("scroll-view", {
style: vue.normalizeStyle([{ "height": "100%" }, $setup.rightListIndex ? { width: "6700rpx" } : { width: "5000rpx" }]),
"scroll-top": $setup.scrollTop,
- "scroll-y": "",
+ "scroll-y": $props.canmove && !$setup.shakyTable,
+ onScroll: $setup.handleScrolltime,
"show-scrollbar": false
}, [
vue.createElementVNode("view", { style: { "display": "flex", "height": "100%" } }, [
@@ -3546,7 +3816,7 @@ if (uni.restoreGlobal) {
"view",
{
class: "super-card-time-und",
- style: vue.normalizeStyle($setup.rightListIndex ? { width: "275rpx" } : { width: "206rpx" })
+ style: vue.normalizeStyle($setup.rightListIndex ? { width: "274rpx" } : { width: "206rpx" })
},
[
(vue.openBlock(true), vue.createElementBlock(
@@ -3561,6 +3831,7 @@ if (uni.restoreGlobal) {
class: "super-card-time-card",
id: `a${index0}_${index1}`,
style: { "position": "relative" },
+ onClick: ($event) => $setup.rulerTouchClick(item1, index0, index1, $event),
onTouchstart: ($event) => $setup.rulerTouchStart(item1, index0, index1, $event),
onTouchmove: $setup.rulerTouchMove,
onTouchend: _cache[2] || (_cache[2] = ($event) => $setup.rulerTouchEnd()),
@@ -3570,26 +3841,31 @@ if (uni.restoreGlobal) {
vue.createCommentVNode(" 气泡 "),
vue.withDirectives(vue.createElementVNode(
"view",
- {
- class: "boom",
- style: vue.normalizeStyle(index1 > item0.children.length / 2 - 1 ? { background: `linear-gradient(to bottom, #f1eeff, #e3deff)` } : { background: `linear-gradient(to bottom, #fff1db, #ffe2b2)` })
- },
+ { class: "boom" },
vue.toDisplayString(item1.serve),
- 5
- /* TEXT, STYLE */
+ 513
+ /* TEXT, NEED_PATCH */
), [
[vue.vShow, !$props.canmove && $props.liang.index1 === index1 && item1.serve && !index0]
]),
+ item1.value && $setup.shakyTable ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "title-time-delete",
+ onClick: vue.withModifiers(($event) => $setup.deleteItems(item1.value, index0, index1), ["stop"])
+ }, " - ", 8, ["onClick"])), [
+ [vue.vShow, $props.liang.index0 !== index0 || $props.liang.index1 !== index1 || $props.canmove]
+ ]) : vue.createCommentVNode("v-if", true),
vue.createElementVNode(
"view",
{
class: vue.normalizeClass($setup.getClass(item1, index0, index1)),
- style: { "font-size": "30rpx" }
+ style: vue.normalizeStyle([{ "font-size": "30rpx", "overflow": "hidden" }, { animationDelay: `-${$setup.computeDelay(index0, index1).toFixed(2)}s` }])
},
[
- vue.withDirectives(vue.createElementVNode(
+ item1.time ? vue.withDirectives((vue.openBlock(), vue.createElementBlock(
"view",
{
+ key: 0,
class: "title-time",
style: { "margin-top": "5rpx" }
},
@@ -3604,9 +3880,10 @@ if (uni.restoreGlobal) {
1
/* TEXT */
),
+ vue.createCommentVNode(' '),
vue.createElementVNode("image", {
class: "title-time-button",
- src: item1.type == "日常" ? `/static/index/yellowbian.png` : `/static/index/pouplebian.png`
+ src: item1.type == "日常" ? `/static/index/yellowbian.png` : `/static/index/puoplebian.png`
}, null, 8, ["src"]),
vue.createElementVNode(
"view",
@@ -3614,54 +3891,64 @@ if (uni.restoreGlobal) {
vue.toDisplayString(item1.type),
1
/* TEXT */
- ),
- vue.createCommentVNode(' \r\n {{item1.type}}\r\n ')
- ],
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, item1.time]
- ]),
- vue.withDirectives(vue.createElementVNode(
- "view",
- { style: { "margin-top": "-15rpx", "font-weight": "700" } },
- vue.toDisplayString($setup.splitString(item1.value)[0]),
- 513
- /* TEXT, NEED_PATCH */
- ), [
- [vue.vShow, !$setup.splitString(item1.value)[1]]
- ]),
- vue.withDirectives(vue.createElementVNode(
- "view",
- { style: { "margin-top": "-15rpx", "font-weight": "700" } },
- vue.toDisplayString($setup.splitString(item1.value)[0]),
- 513
- /* TEXT, NEED_PATCH */
- ), [
- [vue.vShow, $setup.splitString(item1.value)[1]]
- ]),
- vue.withDirectives(vue.createElementVNode(
- "view",
- { style: { "margin-top": "-15rpx", "width": "100%", "background-color": "rgb(255, 206, 216)" } },
- [
- vue.createElementVNode(
- "view",
- { class: "" },
- vue.toDisplayString($setup.splitString(item1.value)[1]),
- 1
- /* TEXT */
)
],
512
/* NEED_PATCH */
+ )), [
+ [vue.vShow, $props.liang.index0 !== index0 || $props.liang.index1 !== index1 || $props.canmove]
+ ]) : vue.createCommentVNode("v-if", true),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { style: { "margin-top": "20rpx", "font-weight": "700" } },
+ vue.toDisplayString($setup.splitString(item1.value)[0]),
+ 513
+ /* TEXT, NEED_PATCH */
), [
- [vue.vShow, $setup.splitString(item1.value)[1]]
- ])
+ [vue.vShow, $props.liang.index0 !== index0 || $props.liang.index1 !== index1 || $props.canmove]
+ ]),
+ $setup.splitString(item1.value)[1] ? vue.withDirectives((vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 1,
+ class: "down-icons",
+ style: vue.normalizeStyle(item1.type != "日常" ? { backgroundColor: `rgb(212,203,255)` } : {})
+ },
+ [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.splitString(item1.value).slice(1), (item2, index2) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ class: "",
+ key: index2
+ }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "icon",
+ style: vue.normalizeStyle(item1.type != "日常" ? { backgroundColor: `rgb(123,97,255)` } : {})
+ },
+ vue.toDisplayString($setup.splitString(item1.value)[index2 + 1]),
+ 5
+ /* TEXT, STYLE */
+ )
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ],
+ 4
+ /* STYLE */
+ )), [
+ [vue.vShow, $props.liang.index0 !== index0 || $props.liang.index1 !== index1 || $props.canmove]
+ ]) : vue.createCommentVNode("v-if", true)
],
- 2
- /* CLASS */
+ 6
+ /* CLASS, STYLE */
)
- ], 40, ["id", "onTouchstart", "data-index0", "data-index1"])
+ ], 40, ["id", "onClick", "onTouchstart", "data-index0", "data-index1"])
]);
}),
128
@@ -3677,73 +3964,82 @@ if (uni.restoreGlobal) {
/* KEYED_FRAGMENT */
))
])
- ], 12, ["scroll-top"])
+ ], 44, ["scroll-top", "scroll-y"])
])
]);
}),
64
/* STABLE_FRAGMENT */
))
- ], 40, ["current"])
+ ], 40, ["disable-touch", "current"])
])
]),
vue.createElementVNode("view", { class: "super-card-end" }, [
vue.createElementVNode("view", { class: "super-end-father" }, [
vue.createElementVNode("view", { class: "super-end-font-father" }, [
vue.createElementVNode("view", { class: "super-end-font-gun" }),
- vue.createElementVNode("view", { class: "super-end-font-font" }, "快捷指令")
+ vue.createElementVNode("view", { class: "super-end-font-font" }, "即时指令")
]),
- vue.createElementVNode("view", { class: "super-end-items" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.bottomItems, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
- vue.createElementVNode(
- "view",
- {
- onTouchstart: $setup.bottomTouchStart,
- onTouchend: $setup.bottomTouchEnd,
- class: "super-end-items-father"
- },
- [
- vue.withDirectives(vue.createElementVNode("view", {
- class: "super-end-items-father-close-father",
- onClick: vue.withModifiers(($event) => $setup.deletebottom(index), ["stop"])
- }, " × ", 8, ["onClick"]), [
- [vue.vShow, $setup.bottomisShaking]
- ]),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass($setup.bottomisShaking ? `super-end-items-img-father-active` : `super-end-items-img-father`)
- },
- [
- vue.createElementVNode("image", {
- class: "super-end-items-img",
- src: item.url
- }, null, 8, ["src"])
- ],
- 2
- /* CLASS */
- ),
- vue.createElementVNode(
- "view",
- { class: "super-end-items-font" },
- vue.toDisplayString(item.name),
- 1
- /* TEXT */
- )
- ],
- 32
- /* NEED_HYDRATION */
- )
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
+ vue.createElementVNode("scroll-view", {
+ "scroll-x": "",
+ class: "super-end-items-all",
+ "scroll-left": $setup.scrollLeft
+ }, [
+ vue.createElementVNode("view", { class: "super-end-items" }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.bottomItems, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
+ vue.createElementVNode(
+ "view",
+ {
+ onTouchstart: $setup.bottomTouchStart,
+ onTouchmove: $setup.bottomTouchMove,
+ onTouchend: $setup.bottomTouchEnd,
+ style: vue.normalizeStyle(item.target ? { background: item.target, transition: `all 1.5s ease-in-out` } : { transition: `all 1.5s ease-in-out` }),
+ class: "super-end-items-father"
+ },
+ [
+ vue.withDirectives(vue.createElementVNode("view", {
+ class: "super-end-items-father-close-father",
+ onClick: vue.withModifiers(($event) => $setup.deletebottom(index, item.name), ["stop"])
+ }, " - ", 8, ["onClick"]), [
+ [vue.vShow, $setup.bottomisShaking]
+ ]),
+ vue.createElementVNode(
+ "view",
+ {
+ style: vue.normalizeStyle({ animationDelay: `-${index * 0.1}s` }),
+ class: vue.normalizeClass($setup.bottomisShaking ? `super-end-items-img-father-active` : `super-end-items-img-father`)
+ },
+ [
+ vue.createElementVNode("image", {
+ class: "super-end-items-img",
+ src: item.url
+ }, null, 8, ["src"])
+ ],
+ 6
+ /* CLASS, STYLE */
+ ),
+ vue.createElementVNode(
+ "view",
+ { class: "super-end-items-font" },
+ vue.toDisplayString(item.name),
+ 1
+ /* TEXT */
+ )
+ ],
+ 36
+ /* STYLE, NEED_HYDRATION */
+ )
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ])
+ ], 8, ["scroll-left"])
])
])
])
@@ -3753,7 +4049,7 @@ if (uni.restoreGlobal) {
"view",
{
class: "popup-overlay",
- onClick: _cache[5] || (_cache[5] = ($event) => {
+ onClick: _cache[4] || (_cache[4] = ($event) => {
$setup.isopen = false;
$setup.flyNumber.index0 = 999;
})
@@ -3764,7 +4060,7 @@ if (uni.restoreGlobal) {
{
class: "popup-overlay-content",
style: vue.normalizeStyle({ top: 2 * $setup.openY - 350 + "rpx", left: 2 * $setup.openX - 780 + "rpx", opacity: $setup.isopacity ? 1 : 0, backgroundColor: ((_b = (_a = $setup.timearr[$setup.flyNumber.index0]) == null ? void 0 : _a.children[$setup.flyNumber.index1]) == null ? void 0 : _b.type) === "日常" ? "#fffcf6" : "rgb(246, 244, 254)" }),
- onClick: _cache[4] || (_cache[4] = vue.withModifiers(() => {
+ onClick: _cache[3] || (_cache[3] = vue.withModifiers(() => {
}, ["stop"]))
},
[
@@ -3782,11 +4078,6 @@ if (uni.restoreGlobal) {
)
]),
vue.createElementVNode("view", { class: "popup-overlay-content-right" }, [
- vue.createElementVNode("image", {
- class: "right-crush",
- src: ((_f = (_e = $setup.timearr[$setup.flyNumber.index0]) == null ? void 0 : _e.children[$setup.flyNumber.index1]) == null ? void 0 : _f.type) === "日常" ? `/static/index/crushyellow.png` : `/static/index/crushpouple.png`,
- onClick: _cache[3] || (_cache[3] = ($event) => $setup.deleteRuler($setup.flyNumber.index0, $setup.flyNumber.index1))
- }, null, 8, ["src"]),
vue.createElementVNode("view", { class: "time-font" }, " 10:00 - 10:10 "),
vue.createElementVNode("view", { class: "time-text" }, " 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 ")
])
@@ -3804,14 +4095,14 @@ if (uni.restoreGlobal) {
$setup.songisopen ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "popup-song",
- onClick: _cache[12] || (_cache[12] = ($event) => $setup.songisopen = false)
+ onClick: _cache[11] || (_cache[11] = ($event) => $setup.songisopen = false)
}, [
vue.createElementVNode(
"view",
{
class: "popup-song-contain",
style: vue.normalizeStyle({ opacity: $setup.songisopacity ? 1 : 0 }),
- onClick: _cache[11] || (_cache[11] = vue.withModifiers(() => {
+ onClick: _cache[10] || (_cache[10] = vue.withModifiers(() => {
}, ["stop"]))
},
[
@@ -3841,7 +4132,7 @@ if (uni.restoreGlobal) {
vue.renderList($setup.openValue.array, (item, index) => {
return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
vue.createElementVNode("view", {
- style: { "position": "relative" },
+ style: { "position": "relative", "box-shadow": "10rpx 10rpx 20rpx rgba(105, 129, 178, 0.4)" },
class: vue.normalizeClass($setup.cardsumit.op.index[2] === index ? `arrayindex-one-target` : `arrayindex-one`),
onClick: ($event) => $setup.clickOp(index, item.type, item.op)
}, [
@@ -3948,7 +4239,7 @@ if (uni.restoreGlobal) {
"view",
{
class: vue.normalizeClass($setup.isweek ? `radio-circle-target` : `radio-circle`),
- onClick: _cache[6] || (_cache[6] = ($event) => {
+ onClick: _cache[5] || (_cache[5] = ($event) => {
$setup.isweek = true;
$setup.cardsumit.monthTime = "";
})
@@ -3959,7 +4250,7 @@ if (uni.restoreGlobal) {
),
vue.createElementVNode("view", {
class: "radio-font",
- onClick: _cache[7] || (_cache[7] = ($event) => {
+ onClick: _cache[6] || (_cache[6] = ($event) => {
$setup.isweek = true;
$setup.cardsumit.monthTime = "";
})
@@ -3968,7 +4259,7 @@ if (uni.restoreGlobal) {
"view",
{
class: vue.normalizeClass(!$setup.isweek ? `radio-circle-target` : `radio-circle`),
- onClick: _cache[8] || (_cache[8] = ($event) => {
+ onClick: _cache[7] || (_cache[7] = ($event) => {
$setup.isweek = false;
$setup.cardsumit.weekTime = "";
})
@@ -3979,7 +4270,7 @@ if (uni.restoreGlobal) {
),
vue.createElementVNode("view", {
class: "radio-font",
- onClick: _cache[9] || (_cache[9] = ($event) => {
+ onClick: _cache[8] || (_cache[8] = ($event) => {
$setup.isweek = false;
$setup.cardsumit.weekTime = "";
})
@@ -4063,7 +4354,7 @@ if (uni.restoreGlobal) {
]),
vue.createElementVNode("view", {
class: "button-father-wrong",
- onClick: _cache[10] || (_cache[10] = ($event) => $setup.songisopen = false),
+ onClick: _cache[9] || (_cache[9] = ($event) => $setup.songisopen = false),
style: { "margin-left": "20rpx" }
}, " 取消 ")
])
@@ -4073,7 +4364,106 @@ if (uni.restoreGlobal) {
4
/* STYLE */
)
- ])) : vue.createCommentVNode("v-if", true)
+ ])) : vue.createCommentVNode("v-if", true),
+ vue.createCommentVNode(" 删除表格的的弹出层 "),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "popup-delete",
+ onClick: _cache[15] || (_cache[15] = ($event) => $setup.deleteisopen = false)
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "popup-delete-content",
+ style: vue.normalizeStyle({ opacity: $setup.deleteisopacity ? 1 : 0 }),
+ onClick: _cache[14] || (_cache[14] = vue.withModifiers(() => {
+ }, ["stop"]))
+ },
+ [
+ vue.createElementVNode("image", {
+ class: "popup-delete-img",
+ src: _imports_2
+ }),
+ vue.createElementVNode(
+ "view",
+ { class: "popup-delete-text" },
+ " 确定要删除 " + vue.toDisplayString($setup.deletename) + " 吗? ",
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode("view", { class: "popup-delete-button" }, [
+ vue.createElementVNode("view", {
+ class: "popup-delete-button-right",
+ onClick: _cache[12] || (_cache[12] = ($event) => $setup.deleteisopen = false)
+ }, " 取消 "),
+ vue.createElementVNode("view", {
+ class: "popup-delete-button-left",
+ onClick: _cache[13] || (_cache[13] = ($event) => $setup.deleteRuler($setup.deleteindex[0], $setup.deleteindex[1]))
+ }, " 确定 ")
+ ])
+ ],
+ 4
+ /* STYLE */
+ )
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.deleteisopen]
+ ]),
+ vue.createCommentVNode(" 删除下方菜单的的弹出层 "),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "popup-delete",
+ onClick: _cache[19] || (_cache[19] = ($event) => $setup.deletedownisopen = false)
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "popup-delete-content",
+ style: vue.normalizeStyle({ opacity: $setup.deletedownisopacity ? 1 : 0 }),
+ onClick: _cache[18] || (_cache[18] = vue.withModifiers(() => {
+ }, ["stop"]))
+ },
+ [
+ vue.createElementVNode("image", {
+ class: "popup-delete-img",
+ src: _imports_2
+ }),
+ vue.createElementVNode(
+ "view",
+ { class: "popup-delete-text" },
+ " 确定要删除 " + vue.toDisplayString($setup.deletename) + " 吗? ",
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode("view", { class: "popup-delete-button" }, [
+ vue.createElementVNode("view", {
+ class: "popup-delete-button-right",
+ onClick: _cache[16] || (_cache[16] = ($event) => $setup.deletedownisopen = false)
+ }, " 取消 "),
+ vue.createElementVNode("view", {
+ class: "popup-delete-button-left",
+ onClick: _cache[17] || (_cache[17] = ($event) => {
+ $setup.bottomItems.splice($setup.deletebottomindex, 1);
+ $setup.deletedownisopen = false;
+ })
+ }, " 确定 ")
+ ])
+ ],
+ 4
+ /* STYLE */
+ )
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.deletedownisopen]
+ ])
],
4
/* STYLE */
@@ -4084,20 +4474,6 @@ if (uni.restoreGlobal) {
);
}
const rightItemssecond = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-337bb5da"], ["__file", "D:/hldy_app/component/rightItemssecond/index.vue"]]);
- const ON_SHOW = "onShow";
- const ON_LOAD = "onLoad";
- function formatAppLog(type, filename, ...args) {
- if (uni.__log__) {
- uni.__log__(type, filename, ...args);
- } else {
- console[type].apply(console, [...args, filename]);
- }
- }
- const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => {
- !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target);
- };
- const onShow = /* @__PURE__ */ createHook(ON_SHOW);
- const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
__name: "index",
setup(__props, { expose: __expose }) {
@@ -4157,19 +4533,30 @@ if (uni.restoreGlobal) {
index0: 999,
index1: 999
});
+ const canTrigger = vue.ref(true);
const getxyrel = (event) => {
+ var _a;
const touch = event.touches[0];
clientX.value = 2 * (Math.floor(touch.clientX) - 100);
clientY.value = 2 * (Math.floor(touch.clientY) - 55);
const translateX = Math.floor(touch.clientX) - 50;
const translateY = Math.floor(touch.clientY) - 25;
const clickedItem = fangkuaiValue.value.find((item) => {
- return translateX >= item.left && translateX <= item.right && translateY >= item.top && translateY <= item.bottom;
+ if (translateX >= item.left && translateX <= item.right && translateY >= item.top && translateY <= item.bottom)
+ ;
+ return translateX >= Math.floor(item.left) && translateX <= Math.floor(item.right) && translateY >= Math.floor(item.top) && translateY <= Math.floor(item.bottom);
});
if (clickedItem) {
const { index0, index1 } = clickedItem.dataset;
indexNumber.value.index0 = index0;
indexNumber.value.index1 = index1;
+ if (clientX.value > 2050 && canTrigger.value) {
+ (_a = ruler.value) == null ? void 0 : _a.nextItems();
+ canTrigger.value = false;
+ setTimeout(() => {
+ canTrigger.value = true;
+ }, 1e3);
+ }
} else {
indexNumber.value.index0 = 999;
indexNumber.value.index1 = 999;
@@ -4182,14 +4569,23 @@ if (uni.restoreGlobal) {
canmove.value = false;
fangkuaiValue.value = fangkuai;
};
+ const changefangkuang = (fangkuang) => {
+ fangkuaiValue.value = fangkuang;
+ formatAppLog("log", "at pages/index/index.vue:178", "!!!!", fangkuaiValue.value);
+ };
+ const saveruler = vue.ref({});
+ const openruler = (res, fangkuai) => {
+ saveruler.value = res;
+ canmove.value = false;
+ fangkuaiValue.value = fangkuai;
+ };
const closename = () => {
savename.value = "";
canmove.value = true;
- fangkuaiValue.value = [];
};
const ruler = vue.ref(null);
const cleanall = () => {
- var _a;
+ var _a, _b;
clientX.value = 9999;
clientY.value = 9999;
canmove.value = true;
@@ -4197,8 +4593,13 @@ if (uni.restoreGlobal) {
index0: 999,
index1: 999
};
- (_a = ruler.value) == null ? void 0 : _a.rulerEnd(savename.value);
+ if (savename.value) {
+ (_a = ruler.value) == null ? void 0 : _a.rulerEnd(savename.value);
+ } else if (saveruler.value.type) {
+ (_b = ruler.value) == null ? void 0 : _b.rulerMoveEnd(saveruler.value);
+ }
savename.value = "";
+ saveruler.value = {};
};
function throttle(fn, delay) {
let lastExecutionTime = 0;
@@ -4210,12 +4611,33 @@ if (uni.restoreGlobal) {
}
};
}
+ function splitString(str) {
+ let result = [];
+ let remainingStr = str;
+ let regex = /([^((]*)[((]([^))]+)[))]/;
+ while (regex.test(remainingStr)) {
+ let match = remainingStr.match(regex);
+ if (match) {
+ if (match[1].trim()) {
+ result.push(match[1].trim());
+ }
+ if (match[2].trim()) {
+ result.push(match[2].trim());
+ }
+ remainingStr = remainingStr.replace(match[0], "").trim();
+ }
+ }
+ if (remainingStr.trim()) {
+ result.push(remainingStr.trim());
+ }
+ return result;
+ }
onShow(() => {
setTimeout(() => {
changeMenu(menuIndex.value);
}, 50);
});
- const __returned__ = { iconList, menuIndex, menuIndexshow, menuIndexshowsecond, darkFans, roomTar, firstcurrentIndex, firstcurrentIndexup, secondcurrentIndexup, secondcurrentIndex, thirdcurrentIndex, darkchange, changeMenu, clientX, clientY, savename, canmove, indexNumber, getxyrel, getxy, fangkuaiValue, openname, closename, ruler, cleanall, throttle, rightItemsfirst, rightItemssecond };
+ const __returned__ = { iconList, menuIndex, menuIndexshow, menuIndexshowsecond, darkFans, roomTar, firstcurrentIndex, firstcurrentIndexup, secondcurrentIndexup, secondcurrentIndex, thirdcurrentIndex, darkchange, changeMenu, clientX, clientY, savename, canmove, indexNumber, canTrigger, getxyrel, getxy, fangkuaiValue, openname, changefangkuang, saveruler, openruler, closename, ruler, cleanall, throttle, splitString, rightItemsfirst, rightItemssecond };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
@@ -4242,6 +4664,95 @@ if (uni.restoreGlobal) {
), [
[vue.vShow, $setup.savename && $setup.clientX]
]),
+ $setup.saveruler.type ? (vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 0,
+ class: vue.normalizeClass($setup.saveruler.type == "日常" ? `title-time-border-yellow` : `title-time-border-pouple`),
+ style: vue.normalizeStyle([{ top: `${$setup.clientY}rpx`, left: `${$setup.clientX}rpx` }, { "font-size": "30rpx", "overflow": "hidden" }])
+ },
+ [
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "title-time",
+ style: { "margin-top": "5rpx" }
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "title-time-time",
+ style: { "font-size": "30rpx" }
+ },
+ vue.toDisplayString($setup.saveruler.time),
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode("image", {
+ class: "title-time-button",
+ src: $setup.saveruler.type == "日常" ? `/static/index/yellowbian.png` : `/static/index/puoplebian.png`
+ }, null, 8, ["src"]),
+ vue.createElementVNode(
+ "view",
+ { class: "title-time-font" },
+ vue.toDisplayString($setup.saveruler.type),
+ 1
+ /* TEXT */
+ )
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.saveruler.time]
+ ]),
+ vue.createElementVNode(
+ "view",
+ { style: { "margin-top": "20rpx", "font-weight": "700" } },
+ vue.toDisplayString($setup.splitString($setup.saveruler.value)[0]),
+ 1
+ /* TEXT */
+ ),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "down-icons",
+ style: vue.normalizeStyle($setup.saveruler.type != "日常" ? { backgroundColor: `rgb(212,203,255)` } : {})
+ },
+ [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.splitString($setup.saveruler.value).slice(1), (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ class: "",
+ key: index
+ }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "icon",
+ style: vue.normalizeStyle($setup.saveruler.type != "日常" ? { backgroundColor: `rgb(123,97,255)` } : {})
+ },
+ vue.toDisplayString($setup.splitString($setup.saveruler.value)[1]),
+ 5
+ /* TEXT, STYLE */
+ )
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ],
+ 4
+ /* STYLE */
+ ), [
+ [vue.vShow, $setup.splitString($setup.saveruler.value)[1]]
+ ])
+ ],
+ 6
+ /* CLASS, STYLE */
+ )) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("view", { class: "left-container" }, [
vue.createElementVNode("view", { class: "left-head" }, [
vue.createElementVNode("image", {
@@ -4310,6 +4821,8 @@ if (uni.restoreGlobal) {
darkFans: $setup.darkFans,
onDarkchange: $setup.darkchange,
onSavename: $setup.openname,
+ onSaveruler: $setup.openruler,
+ onChangefangkuang: $setup.changefangkuang,
onCleanname: $setup.closename
}, null, 8, ["liang", "isshow", "canmove", "darkFans"]), [
[vue.vShow, $setup.menuIndex == 1]
diff --git a/unpackage/dist/dev/app-plus/pages/index/index.css b/unpackage/dist/dev/app-plus/pages/index/index.css
index a204355..06080ce 100644
--- a/unpackage/dist/dev/app-plus/pages/index/index.css
+++ b/unpackage/dist/dev/app-plus/pages/index/index.css
@@ -3323,28 +3323,32 @@
justify-content: center;
width: 100%;
height: calc(100% - 12.5rem);
- margin-top: 0.9375rem;
}
.super-card .scroll-x[data-v-337bb5da] {
height: 100%;
width: 100%;
}
.super-card .super-card-container[data-v-337bb5da] {
- background-color: #f1f7fd;
+ /* 设置背景图和白色背景 */
+ background: url("../../static/index/clearmountain.png") center / cover, rgba(255, 255, 255, 0.5);
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ isolation: isolate;
overflow: hidden;
width: 51.5625rem;
height: 28.75rem;
border-radius: 0.625rem;
- border: 0.03125rem solid black;
+ border: 0.0625rem solid #fff;
+ box-shadow: 0.3125rem 0.3125rem 20px rgba(0, 0, 0, 0.1);
}
.super-card .super-card-time[data-v-337bb5da] {
display: flex;
justify-content: center;
align-items: center;
- background-color: #e9efff;
height: 2.5rem;
width: 3.125rem;
- border-right: 0.03125rem solid #BFBFCB;
+ border-right: 0.03125rem solid transparent;
+ border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 0.1875rem, transparent 0.1875rem, transparent 0.375rem) 1;
font-weight: 700;
}
.super-card .super-card-time-und[data-v-337bb5da] {
@@ -3353,7 +3357,8 @@
align-items: center;
width: 3.125rem;
flex-direction: column;
- border-right: 0.03125rem solid #BFBFCB;
+ border-right: 0.03125rem solid transparent;
+ border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 0.1875rem, transparent 0.1875rem, transparent 0.375rem) 1;
}
.super-card .super-card-time-card[data-v-337bb5da] {
display: flex;
@@ -3361,10 +3366,9 @@
align-items: center;
height: 6.53125rem;
width: calc(100%);
- border-right: 0.03125rem solid #BFBFCB;
- border-top: 0.03125rem solid #BFBFCB;
+ border-top: 0.03125rem solid transparent;
+ border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 0.1875rem, transparent 0.1875rem, transparent 0.375rem) 1;
flex-direction: column;
- background-color: #f3f6fc;
position: relative;
}
.super-card .super-card-time-card .boom[data-v-337bb5da] {
@@ -3386,6 +3390,7 @@
text-align: center;
z-index: 10;
/* 确保文字在容器内居中 */
+ background: linear-gradient(to bottom, #ffe2b2, #e3deff);
}
.right-container[data-v-337bb5da] {
width: calc(100% - 7.34375rem);
@@ -3442,7 +3447,7 @@
backdrop-filter: blur(0.25rem);
width: 9.0625rem;
height: 28.125rem;
- border-radius: 1.25rem;
+ border-radius: 0.9375rem;
margin-top: 0;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
/* 右下角阴影 */
@@ -3506,6 +3511,7 @@
transition: all 0.4s ease-in-out;
font-weight: 500;
font-size: 0.9375rem;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
}
.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-container-button .doctorsay-container-button-gun[data-v-337bb5da] {
position: absolute;
@@ -3526,10 +3532,16 @@
transition: all 0.4s ease-in-out;
}
.right-container .doctorsay-container-view .doctorsay-container-container[data-v-337bb5da] {
- width: 54.0625rem;
- height: 42rem;
- background-color: rgba(255, 255, 255, 0.7);
- border-radius: 1.875rem;
+ border: 0.0625rem solid #fff;
+ width: 53.9375rem;
+ height: 41.875rem;
+ /* 设置背景图和白色背景 */
+ background: url("../../static/index/lightbgcnew.png") center / cover, rgba(255, 255, 255, 0.3);
+ -webkit-backdrop-filter: blur(0.625rem);
+ backdrop-filter: blur(0.625rem);
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ border-radius: 0.9375rem;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
/* 右下角阴影 */
overflow: hidden;
@@ -3544,36 +3556,45 @@
flex-direction: column;
width: 100%;
}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items-all[data-v-337bb5da] {
+ width: calc(100% - 2.65625rem);
+ height: 6.25rem;
+ margin-left: 1.25rem;
+ margin-right: 1.25rem;
+ margin-top: 0.625rem;
+}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items[data-v-337bb5da] {
display: flex;
- width: calc(100% - 1.875rem);
- height: 9.375rem;
- margin-left: 0.9375rem;
- overflow-x: auto;
+ width: calc(100% - 2.65625rem);
+ height: 6.25rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father[data-v-337bb5da] {
- margin-left: 0.3125rem;
- margin-top: 0.46875rem;
+ margin-right: 0.625rem;
width: 4.6875rem;
+ height: 4.6875rem;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
position: relative;
+ background: linear-gradient(to bottom right, #fff 0%, #dcdcf9 50%, #dbdcf8 100%);
+ border-radius: 0.78125rem;
+ border: 0.0625rem solid #fff;
+ box-shadow: 0.3125rem 0.3125rem 0.625rem rgba(0, 0, 0, 0.1);
+ transition: all 1.5s ease-in-out;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-father-close-father[data-v-337bb5da] {
width: 1.25rem;
height: 1.25rem;
border-radius: 50%;
display: flex;
- background-color: #fff;
+ background-color: #0184db;
justify-content: center;
align-items: center;
position: absolute;
- top: -0.3125rem;
- right: 0.46875rem;
+ top: 0;
+ right: 0;
z-index: 10;
- background-color: #02abfe;
color: #fff;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father[data-v-337bb5da] {
@@ -3581,53 +3602,36 @@
height: 3.125rem;
border-radius: 50%;
display: flex;
- background-color: #fff;
justify-content: center;
align-items: center;
/* 让正方形变成圆 */
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father .super-end-items-img[data-v-337bb5da] {
- width: 2.34375rem;
- height: 2.34375rem;
+ width: 2.65625rem;
+ height: 2.65625rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father-active[data-v-337bb5da] {
width: 3.125rem;
height: 3.125rem;
border-radius: 50%;
display: flex;
- background-color: #fff;
justify-content: center;
align-items: center;
animation: shake-337bb5da 0.5s infinite;
/* 让正方形变成圆 */
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father-active .super-end-items-img[data-v-337bb5da] {
- width: 2.34375rem;
- height: 2.34375rem;
-}
-@keyframes shake-337bb5da {
-0% {
- transform: rotate(-10deg);
-}
-25% {
- transform: rotate(10deg);
-}
-50% {
- transform: rotate(-10deg);
-}
-75% {
- transform: rotate(10deg);
-}
-100% {
- transform: rotate(-10deg);
-}
+ width: 2.65625rem;
+ height: 2.65625rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-font[data-v-337bb5da] {
- margin-top: 0.3125rem;
+ margin-top: -0.3125rem;
font-size: 0.78125rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father[data-v-337bb5da] {
display: flex;
+ margin-top: 0.625rem;
+ margin-bottom: 0.3125rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father .super-end-font-gun[data-v-337bb5da] {
margin-left: 1.25rem;
@@ -3644,8 +3648,9 @@
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title[data-v-337bb5da] {
width: 100%;
- height: 4.0625rem;
- background-color: #f1f6fd;
+ height: 3.28125rem;
+ /* 设置背景图和白色背景 */
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
display: flex;
align-items: center;
justify-content: space-between;
@@ -3794,29 +3799,121 @@
font-weight: 800;
color: white;
}
+.title-time-delete[data-v-337bb5da] {
+ width: 1.71875rem;
+ height: 1.71875rem;
+ border-radius: 50%;
+ display: flex;
+ background-color: #fff;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 10;
+ background-color: #02abfe;
+ color: #fff;
+ z-index: 999;
+ font-size: 1.5625rem;
+}
.title-time[data-v-337bb5da] {
display: flex;
+ width: 100%;
position: relative;
}
.title-time .title-time-time[data-v-337bb5da] {
font-size: 1rem;
- margin-right: 2.5rem;
- margin-top: -0.3125rem;
+ margin-left: 1.25rem;
+ margin-top: 0.375rem;
}
.title-time .title-time-button[data-v-337bb5da] {
position: absolute;
- top: -0.875rem;
- right: -0.78125rem;
- width: 2.5rem;
- height: 2.5rem;
+ top: -0.125rem;
+ right: -0.125rem;
+ width: 2.03125rem;
+ height: 1.875rem;
+}
+.title-time .title-time-zhejiao[data-v-337bb5da] {
+ position: absolute;
+ top: 0;
+ left: 0.15625rem;
+ width: 1.25rem;
+ height: 1.25rem;
}
.title-time .title-time-font[data-v-337bb5da] {
position: absolute;
- top: -0.3125rem;
- right: -0.625rem;
- font-size: 0.78125rem;
+ top: 0.21875rem;
+ right: 0.15625rem;
+ font-size: 0.625rem;
color: #fff;
}
+.popup-delete[data-v-337bb5da] {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-backdrop-filter: blur(0.03125rem);
+ backdrop-filter: blur(0.03125rem);
+ background-color: rgba(89, 109, 154, 0.4);
+ /* 添加毛玻璃效果 */
+ z-index: 999;
+}
+.popup-delete .popup-delete-content[data-v-337bb5da] {
+ position: absolute;
+ right: 16.09375rem;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 25rem;
+ height: 15.625rem;
+ background: url("../../static/index/lightbgcnew.png") center / cover, rgba(255, 255, 255, 0.7);
+ border: 0.0625rem solid #fff;
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ border-radius: 0.9375rem;
+ box-shadow: 0.3125rem 0.3125rem 0.625rem rgba(0, 0, 0, 0.1);
+ transition: opacity 0.4s ease;
+}
+.popup-delete .popup-delete-content .popup-delete-img[data-v-337bb5da] {
+ width: 7.8125rem;
+ height: 7.1875rem;
+ margin-top: 1.25rem;
+ margin-bottom: 0.625rem;
+}
+.popup-delete .popup-delete-content .popup-delete-text[data-v-337bb5da] {
+ font-size: 0.9375rem;
+ color: #42474E;
+}
+.popup-delete .popup-delete-content .popup-delete-button[data-v-337bb5da] {
+ display: flex;
+ justify-content: space-around;
+ height: 2.8125rem;
+ margin-top: 0.9375rem;
+}
+.popup-delete .popup-delete-content .popup-delete-button .popup-delete-button-left[data-v-337bb5da] {
+ background-color: #02abfe;
+ width: 6.25rem;
+ height: 2.5rem;
+ border-radius: 1.25rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #fff;
+}
+.popup-delete .popup-delete-content .popup-delete-button .popup-delete-button-right[data-v-337bb5da] {
+ background-color: #ced9e8;
+ width: 6.25rem;
+ height: 2.5rem;
+ border-radius: 1.25rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 0.625rem;
+}
.popup-overlay[data-v-337bb5da] {
position: fixed;
top: 0;
@@ -3912,15 +4009,23 @@
display: flex;
justify-content: center;
align-items: center;
+ -webkit-backdrop-filter: blur(0.03125rem);
+ backdrop-filter: blur(0.03125rem);
+ background-color: rgba(89, 109, 154, 0.4);
/* 添加毛玻璃效果 */
z-index: 999;
}
.popup-song .popup-song-contain[data-v-337bb5da] {
position: absolute;
- right: 13.125rem;
- width: 40.625rem;
- background-color: #fff;
- border-radius: 0.625rem;
+ right: 8.4375rem;
+ width: 40.5rem;
+ /* 设置背景图和白色背景 */
+ background: url("../../static/index/clearmountain.png") center / cover, rgba(255, 255, 255, 0.7);
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ border: 0.0625rem solid #fff;
+ /* 使用 screen 混合模式,让图像与白色混合变淡 */
+ background-blend-mode: screen;
+ border-radius: 1.25rem;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
opacity: 0;
transition: opacity 0.4s ease;
@@ -3985,9 +4090,10 @@
height: 3.125rem;
margin-left: 0.625rem;
margin-top: 0.625rem;
- background-color: #fffaf1;
+ background-color: #02abfe;
+ color: #fff;
border-radius: 0.625rem;
- border: 0.03125rem solid #ffb501;
+ border: 0.03125rem solid #02abfe;
display: flex;
justify-content: center;
align-items: center;
@@ -3996,9 +4102,9 @@
.ri-img[data-v-337bb5da] {
position: absolute;
top: -0.125rem;
- right: -0.09375rem;
- width: 1.5625rem;
- height: 1.5625rem;
+ right: -0.125rem;
+ width: 1.875rem;
+ height: 1.875rem;
}
.time-father[data-v-337bb5da] {
display: flex;
@@ -4019,6 +4125,7 @@
justify-content: center;
align-items: center;
font-size: 0.90625rem;
+ box-shadow: 0.15625rem 0.15625rem 0.3125rem rgba(105, 129, 178, 0.4);
}
.time-father .time-one-target[data-v-337bb5da] {
width: 3.125rem;
@@ -4033,20 +4140,21 @@
justify-content: center;
align-items: center;
font-size: 0.90625rem;
+ box-shadow: 0.15625rem 0.15625rem 0.3125rem rgba(105, 129, 178, 0.4);
}
.time-father .time-one-hui[data-v-337bb5da] {
width: 3.125rem;
height: 3.125rem;
margin-left: 0.625rem;
margin-top: 0.625rem;
- background-color: #dadada;
- color: #fff;
+ background-color: #c2c9d3;
border-radius: 0.625rem;
border: 0.03125rem solid #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 0.90625rem;
+ box-shadow: 0.15625rem 0.15625rem 0.3125rem rgba(105, 129, 178, 0.4);
}
.button-father[data-v-337bb5da] {
height: 6.25rem;
@@ -4070,7 +4178,7 @@
color: #fff;
}
.button-father .button-father-wrong[data-v-337bb5da] {
- background-color: #dadada;
+ background-color: #c2c9d3;
width: 6.25rem;
height: 2.5rem;
border-radius: 1.25rem;
@@ -4195,16 +4303,25 @@
height: calc(100% - 0.25rem);
border-radius: 0.625rem;
display: flex;
- justify-content: space-evenly;
align-items: center;
flex-direction: column;
}
+.title-time-border-red[data-v-337bb5da] {
+ background-color: #dae8fa;
+ width: calc(100%);
+ height: calc(100%);
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ /* 调整 box-shadow 使其向下投影 */
+ box-shadow: 0px 0.625rem 1.25rem #dae8fa;
+ background: linear-gradient(to right, red, red) top left / 1.875rem 0.25rem no-repeat, linear-gradient(to bottom, red, red) top left / 0.25rem 1.875rem no-repeat, linear-gradient(to left, red, red) top right / 1.875rem 0.25rem no-repeat, linear-gradient(to bottom, red, red) top right / 0.25rem 1.875rem no-repeat, linear-gradient(to right, red, red) bottom left / 1.875rem 0.25rem no-repeat, linear-gradient(to top, red, red) bottom left / 0.25rem 1.875rem no-repeat, linear-gradient(to left, red, red) bottom right / 1.875rem 0.25rem no-repeat, linear-gradient(to top, red, red) bottom right / 0.25rem 1.875rem no-repeat;
+}
.title-time-border-blue[data-v-337bb5da] {
background-color: #dae8fa;
width: calc(100%);
height: calc(100%);
display: flex;
- justify-content: space-evenly;
align-items: center;
flex-direction: column;
/* 调整 box-shadow 使其向下投影 */
@@ -4212,6 +4329,31 @@
background: linear-gradient(to right, #0184db, #0184db) top left / 1.875rem 0.25rem no-repeat, linear-gradient(to bottom, #0184db, #0184db) top left / 0.25rem 1.875rem no-repeat, linear-gradient(to left, #0184db, #0184db) top right / 1.875rem 0.25rem no-repeat, linear-gradient(to bottom, #0184db, #0184db) top right / 0.25rem 1.875rem no-repeat, linear-gradient(to right, #0184db, #0184db) bottom left / 1.875rem 0.25rem no-repeat, linear-gradient(to top, #0184db, #0184db) bottom left / 0.25rem 1.875rem no-repeat, linear-gradient(to left, #0184db, #0184db) bottom right / 1.875rem 0.25rem no-repeat, linear-gradient(to top, #0184db, #0184db) bottom right / 0.25rem 1.875rem no-repeat;
}
.title-time-border-yellow[data-v-337bb5da] {
+ margin: 0.3125rem;
+ border: 0.0625rem solid #d0d8e0;
+ background: linear-gradient(to bottom, #fff1db, #ffe2b2);
+ width: calc(100% - 0.625rem);
+ height: calc(100% - 0.625rem);
+ border-radius: 0.625rem;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ box-shadow: 0.25rem 0.25rem 0.5rem rgba(255, 138, 0, 0.7);
+}
+.title-time-border-yellow-active-transparent[data-v-337bb5da] {
+ margin: 0.3125rem;
+ border: 0.125rem dashed #ff8a00;
+ background: linear-gradient(to bottom, #fff1db, #ffe2b2);
+ width: calc(100% - 0.8125rem);
+ height: calc(100% - 0.8125rem);
+ border-radius: 0.625rem;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ opacity: 0.3;
+ box-shadow: 0.25rem 0.25rem 0.5rem rgba(255, 138, 0, 0.7);
+}
+.title-time-border-yellow-active[data-v-337bb5da] {
margin: 0.3125rem;
border: 0.03125rem solid #dae8fa;
background: linear-gradient(to bottom, #fff1db, #ffe2b2);
@@ -4219,9 +4361,23 @@
height: calc(100% - 0.625rem);
border-radius: 0.625rem;
display: flex;
- justify-content: space-evenly;
align-items: center;
flex-direction: column;
+ animation: shakesmall-337bb5da 0.8s infinite;
+ box-shadow: 0.25rem 0.25rem 0.5rem rgba(255, 138, 0, 0.7);
+}
+.title-time-border-pouple-active-transparent[data-v-337bb5da] {
+ margin: 0.3125rem;
+ border: 0.125rem dashed #7B61FF;
+ background: linear-gradient(to bottom, #f1eeff, #e3deff);
+ width: calc(100% - 0.8125rem);
+ height: calc(100% - 0.8125rem);
+ border-radius: 0.625rem;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ opacity: 0.3;
+ box-shadow: 0.25rem 0.25rem 0.5rem rgba(123, 97, 255, 0.7);
}
.title-time-border-pouple[data-v-337bb5da] {
margin: 0.3125rem;
@@ -4231,9 +4387,73 @@
height: calc(100% - 0.625rem);
border-radius: 0.625rem;
display: flex;
- justify-content: space-evenly;
align-items: center;
flex-direction: column;
+ box-shadow: 0.25rem 0.25rem 0.5rem rgba(123, 97, 255, 0.7);
+}
+.title-time-border-pouple-active[data-v-337bb5da] {
+ margin: 0.3125rem;
+ border: 0.03125rem solid #dae8fa;
+ background: linear-gradient(to bottom, #f1eeff, #e3deff);
+ width: calc(100% - 0.625rem);
+ height: calc(100% - 0.625rem);
+ border-radius: 0.625rem;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ animation: shakesmall-337bb5da 1s infinite;
+ box-shadow: 0.25rem 0.25rem 0.5rem rgba(123, 97, 255, 0.7);
+}
+.down-icons[data-v-337bb5da] {
+ margin-top: 0.3125rem;
+ width: 100%;
+ height: 1.875rem;
+ background-color: #ffd87e;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.down-icons .icon[data-v-337bb5da] {
+ margin: 0 0.15625rem;
+ font-size: 0.625rem;
+ padding: 0.15625rem 0.3125rem;
+ background-color: #ff8a00;
+ color: #fff;
+ border-radius: 0.15625rem;
+}
+@keyframes shake-337bb5da {
+0% {
+ transform: rotate(-10deg);
+}
+25% {
+ transform: rotate(10deg);
+}
+50% {
+ transform: rotate(-10deg);
+}
+75% {
+ transform: rotate(10deg);
+}
+100% {
+ transform: rotate(-10deg);
+}
+}
+@keyframes shakesmall-337bb5da {
+0% {
+ transform: rotate(-2deg);
+}
+25% {
+ transform: rotate(2deg);
+}
+50% {
+ transform: rotate(-2deg);
+}
+75% {
+ transform: rotate(2deg);
+}
+100% {
+ transform: rotate(-2deg);
+}
}
.backgroundContainer[data-v-1cf27b2a] {
@@ -4324,3 +4544,70 @@
margin: 1.5625rem 0;
z-index: 100;
}
+.title-time-border-yellow[data-v-1cf27b2a] {
+ width: 7.96875rem;
+ height: 5.90625rem;
+ margin: 0.3125rem;
+ border: 0.03125rem solid #dae8fa;
+ background: linear-gradient(to bottom, #fff1db, #ffe2b2);
+ border-radius: 0.625rem;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ position: absolute;
+ z-index: 10;
+}
+.title-time-border-pouple[data-v-1cf27b2a] {
+ width: 7.96875rem;
+ height: 5.90625rem;
+ margin: 0.3125rem;
+ border: 0.03125rem solid #dae8fa;
+ background: linear-gradient(to bottom, #f1eeff, #e3deff);
+ border-radius: 0.625rem;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ position: absolute;
+ z-index: 10;
+}
+.title-time[data-v-1cf27b2a] {
+ display: flex;
+ width: 100%;
+ position: relative;
+}
+.title-time .title-time-time[data-v-1cf27b2a] {
+ font-size: 1rem;
+ margin-left: 0.84375rem;
+ margin-top: 0.375rem;
+}
+.title-time .title-time-button[data-v-1cf27b2a] {
+ position: absolute;
+ top: -0.15625rem;
+ right: 0;
+ width: 2.1875rem;
+ height: 2.1875rem;
+}
+.title-time .title-time-font[data-v-1cf27b2a] {
+ position: absolute;
+ top: 0.21875rem;
+ right: 0.15625rem;
+ font-size: 0.71875rem;
+ color: #fff;
+}
+.down-icons[data-v-1cf27b2a] {
+ margin-top: 0.625rem;
+ width: 100%;
+ height: 1.5625rem;
+ background-color: #ffd87e;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.down-icons .icon[data-v-1cf27b2a] {
+ margin: 0 0.15625rem;
+ font-size: 0.625rem;
+ padding: 0.15625rem 0.3125rem;
+ background-color: #ff8a00;
+ color: #fff;
+ border-radius: 0.15625rem;
+}
diff --git a/unpackage/dist/dev/app-plus/static/index/clearmountain.png b/unpackage/dist/dev/app-plus/static/index/clearmountain.png
new file mode 100644
index 0000000..854d294
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/clearmountain.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/deleteicon.png b/unpackage/dist/dev/app-plus/static/index/deleteicon.png
new file mode 100644
index 0000000..e0cb99f
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/deleteicon.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/pouplezhejiao.png b/unpackage/dist/dev/app-plus/static/index/pouplezhejiao.png
new file mode 100644
index 0000000..3290307
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/pouplezhejiao.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/yellowzhejiao.png b/unpackage/dist/dev/app-plus/static/index/yellowzhejiao.png
new file mode 100644
index 0000000..5b27551
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/yellowzhejiao.png differ