3.26
This commit is contained in:
parent
8646ab37d2
commit
fa4bc8bf0c
File diff suppressed because it is too large
Load Diff
|
@ -99,16 +99,23 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="doctorsay-container-juzhen" @click="routerPush">
|
||||
预览矩阵
|
||||
预览
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="super-card">
|
||||
<view class="super-card-container">
|
||||
<!-- 气泡 -->
|
||||
<view class="boom" :style="{ top: `${2 * saveBoomTop - 253}rpx` }"
|
||||
v-if="!canmove && liang.index0!==999 && saveBoomName">
|
||||
{{saveBoomName}}
|
||||
<!-- 气泡 top: `${2 * scrollTop - 253}rpx` -->
|
||||
<view class="boom">
|
||||
<view :style="{ marginTop: `-${2 *moveDownNumber}rpx` }">
|
||||
<view v-for="(item,index) in timearr[0].children" :key="index">
|
||||
<view
|
||||
:class="touchindex1 === index ||(liang.index1 === index && !canmove) || (flyNumber.index1 === index && shakyTable) ? `boom-son-target`: `boom-son`"
|
||||
v-show="item.serve">
|
||||
{{item.serve}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<swiper :disable-touch="!canmove || shakyTable" :current="currentNumber" class="scroll-x"
|
||||
circular :indicator-dots="false" @change="changecurrentNumber" :interval="4000"
|
||||
|
@ -137,10 +144,9 @@
|
|||
<view v-for="(item1,index1) in item0.children" style="width: 100%;"
|
||||
:key="index1">
|
||||
<view
|
||||
:class="targetRuler.current===currentNumber && targetRuler.index0 === index0 && targetRuler.index1 === index1 ?`title-time-border-big`:`super-card-time-card` "
|
||||
:style="targetRuler.bordershow ? {} : {}"
|
||||
:id="`a${index0}_${index1}`"
|
||||
style="position: relative;"
|
||||
:class="targetRuler.current===currentNumber && targetRuler.index0 === index0 && targetRuler.index1 === index1 ? targetRuler.index1 ?`title-time-border-big`:`title-time-border-big-top` : `super-card-time-card` "
|
||||
:style="!targetRuler.bordershow && saveRulerTime.index0 === index0 && saveRulerTime.index1 === index1 ? {zIndex:999} : {borderTop: '1rpx solid transparent'}"
|
||||
:id="`a${index0}_${index1}`" style="position: relative;"
|
||||
@click="rulerTouchClick(item1,index0,index1,$event)"
|
||||
@touchstart="rulerTouchStart(item1,index0,index1,$event)"
|
||||
@touchmove="rulerTouchMove" @touchend="rulerTouchEnd()"
|
||||
|
@ -163,8 +169,6 @@
|
|||
style="font-size: 30rpx;">
|
||||
{{item1.time}}
|
||||
</view>
|
||||
<!-- <image class="title-time-zhejiao"
|
||||
:src="item1.type=='日常'?`/static/index/yellowzhejiao.png`:`/static/index/puoplezhejiao.png`" /> -->
|
||||
<image class="title-time-button"
|
||||
:src="item1.type=='日常'?`/static/index/yellowbian.png`:`/static/index/puoplebian.png`" />
|
||||
<view class="title-time-font">
|
||||
|
@ -232,7 +236,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<!-- 长按的弹出层 -->
|
||||
<view v-show="isopen" class="popup-overlay" @click="isopen=false;flyNumber.index0=999">
|
||||
<view v-show="isopen" class="popup-overlay" @click="isopen=false;flyNumber.index0=999;touchindex1=-1">
|
||||
<view class="popup-overlay-content"
|
||||
:style="{ top: (2*openY - 350) + 'rpx',left: (2*openX - 780) + 'rpx',opacity: isopacity ? 1 : 0,backgroundColor:timearr[flyNumber.index0]?.children[flyNumber.index1]?.type==='日常'? '#fffcf6':'rgb(246, 244, 254)' }"
|
||||
@click.stop>
|
||||
|
@ -419,19 +423,19 @@
|
|||
bottomisShaking.value = false
|
||||
shakyTable.value = false
|
||||
})
|
||||
watch(
|
||||
() => props.liang.index1,
|
||||
() => {
|
||||
if (props.liang.index1 != 999) {
|
||||
saveBoomName.value = timearr.value[0].children[props.liang.index1].serve ? timearr.value[0].children[props.liang.index1].serve : "";
|
||||
reldata.value.find(item => {
|
||||
if (item.dataset.index0 === props.liang.index0 && item.dataset.index1 === props.liang.index1) {
|
||||
saveBoomTop.value = Math.floor(item.top)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
)
|
||||
// watch(
|
||||
// () => props.liang.index1,
|
||||
// () => {
|
||||
// if (props.liang.index1 != 999) {
|
||||
// saveBoomName.value = timearr.value[0].children[props.liang.index1].serve ? timearr.value[0].children[props.liang.index1].serve : "";
|
||||
// reldata.value.find(item => {
|
||||
// if (item.dataset.index0 === props.liang.index0 && item.dataset.index1 === props.liang.index1) {
|
||||
// saveBoomTop.value = Math.floor(item.top)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// )
|
||||
onMounted(() => {
|
||||
downList.value = bigArray[0].data
|
||||
})
|
||||
|
@ -519,8 +523,8 @@
|
|||
// "三分段",
|
||||
// "四分段",
|
||||
])
|
||||
const saveBoomName = ref("")
|
||||
const saveBoomTop = ref(0)
|
||||
// const saveBoomName = ref("")
|
||||
// const saveBoomTop = ref(0)
|
||||
const isopen = ref(false)
|
||||
const songisopen = ref(false)
|
||||
const isopacity = ref(false)
|
||||
|
@ -564,7 +568,7 @@
|
|||
// 方法:根据条件返回不同的类名
|
||||
const getClass = (item, index0, index1) => {
|
||||
|
||||
if (!props.canmove && props.liang.index0 === index0 && redNameindex0.value.includes(index0 + (currentNumber.value * 6)) && props.liang.index1 === index1) {
|
||||
if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1 && (redNameindex0.value.includes(index0 + (currentNumber.value * 6)) || (redNameindex1.value != index1))) {
|
||||
return 'title-time-border-red';
|
||||
}
|
||||
else if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
|
||||
|
@ -667,9 +671,12 @@
|
|||
deleteisopacity.value = true
|
||||
}, 200)
|
||||
}
|
||||
const touchindex1 = ref(-1);
|
||||
|
||||
//表格点击开始
|
||||
const rulerTouchClick = (item : any, index0 : number, index1 : number, e : any) => {
|
||||
if (item.value) {
|
||||
touchindex1.value = index1;
|
||||
const query = uni.createSelectorQuery()
|
||||
query
|
||||
.selectAll('.super-card-time-card')
|
||||
|
@ -708,11 +715,27 @@
|
|||
//表格长按开始
|
||||
const rulerTouchStart = (item : any, index0 : number, index1 : number, e : any) => {
|
||||
scrollTop.value = moveDownNumber.value;
|
||||
redNameindex0.value = [];
|
||||
let index1Number = -1
|
||||
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)
|
||||
timearr.value.forEach((element0 : any, index0 : number) => {
|
||||
element0.children.forEach((element1 : any) => {
|
||||
if (element1.serve === item.serve && element1.value) {
|
||||
redNameindex0.value.push(index0)
|
||||
}
|
||||
if (element1.value) {
|
||||
index1Number = index0
|
||||
}
|
||||
})
|
||||
})
|
||||
if (redNameindex0.value.length) {
|
||||
redNameindex1.value = index1
|
||||
} else {
|
||||
redNameindex1.value = index1Number + 1
|
||||
}
|
||||
flyNumber.value.serve = item.serve
|
||||
flyNumber.value.index0 = index0 + (currentNumber.value * 6);
|
||||
flyNumber.value.index1 = index1;
|
||||
|
@ -817,25 +840,56 @@
|
|||
const isTuoing = ref(false);
|
||||
//给红色表格用
|
||||
const redNameindex0 = ref([]);
|
||||
const redNameindex1 = ref(-1);
|
||||
//左下菜单长按开始
|
||||
const handleTouchStart = (item : string, index : number, e : any) => {
|
||||
scrollTop.value = moveDownNumber.value;
|
||||
redNameindex0.value = [];
|
||||
shakyTable.value = false
|
||||
saveX.value = Math.floor(e.touches[0].pageX);
|
||||
saveY.value = Math.floor(e.touches[0].pageY);
|
||||
longPressTimer.value = setTimeout(()=>{
|
||||
let noHave = false;
|
||||
timearr.value[0].children.forEach((element : any,index0:number) => {
|
||||
if (element.serve === item) {
|
||||
scrollTop.value = 0
|
||||
scrollTop.value = index0 * 104
|
||||
noHave = true
|
||||
}
|
||||
})
|
||||
if(!noHave){
|
||||
scrollTop.value = 0
|
||||
scrollTop.value = 999
|
||||
}
|
||||
},190)
|
||||
|
||||
|
||||
//执行方法
|
||||
longPressTimer.value = setTimeout(() => {
|
||||
redNameindex0.value = [];
|
||||
if (isScrolling.value) return
|
||||
let index1save = -1;
|
||||
let indexanthersave = -1;
|
||||
timearr.value.forEach((element0 : any, index0 : number) => {
|
||||
element0.children.forEach((element1 : any) => {
|
||||
element0.children.forEach((element1 : any, index1 : number) => {
|
||||
if (element1.serve === item && element1.value) {
|
||||
redNameindex0.value.push(index0)
|
||||
index1save = index1
|
||||
}
|
||||
if (element1.value) {
|
||||
if (index1 > indexanthersave) {
|
||||
indexanthersave = index1
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
// console.log("!!!!",redNameindex0.value)
|
||||
// redNameindex0.value = 0;
|
||||
// console.log("1111",indexanthersave)
|
||||
if (redNameindex0.value.length) {
|
||||
redNameindex1.value = index1save
|
||||
} else {
|
||||
redNameindex1.value = indexanthersave + 1
|
||||
}
|
||||
|
||||
// redName.value = item;
|
||||
isBack.value = true;
|
||||
downmenuIndex.value = index
|
||||
indexsave.value = [-1, -1]
|
||||
|
@ -968,7 +1022,12 @@
|
|||
//表格拖动结束
|
||||
const rulerEnd = async (res : any) => {
|
||||
isBack.value = false;
|
||||
|
||||
if (props.liang.index0 !== 999 && res) {
|
||||
// console.log("cccc",redNameindex0.value,props.liang.index0)
|
||||
if (redNameindex0.value.includes(props.liang.index0 + (currentNumber.value * 6)) || redNameindex1.value !== props.liang.index1) {
|
||||
return false;
|
||||
}
|
||||
cardsumit.value = {
|
||||
op: {
|
||||
name: "",
|
||||
|
@ -991,9 +1050,12 @@
|
|||
clickOp(0, openValue.value.array[0].type, openValue.value.array[0].op)
|
||||
}
|
||||
}
|
||||
// (长按变革后)表格拖动结束
|
||||
// (长按表格后)表格拖动结束
|
||||
const rulerMoveEnd = (object : any) => {
|
||||
if (props.liang.index0 !== 999 && object.type) {
|
||||
if (redNameindex0.value.includes(props.liang.index0 + (currentNumber.value * 6)) || redNameindex1.value !== props.liang.index1) {
|
||||
return false;
|
||||
}
|
||||
indexsave.value = [props.liang.index0 + (currentNumber.value * 6), props.liang.index1]
|
||||
let savaIndex = -1;
|
||||
let emptyChildIndices = [];
|
||||
|
@ -1174,7 +1236,9 @@
|
|||
await nextTick()
|
||||
// 设置一个足够大的值让 scroll-view 滚动到底部
|
||||
scrollTop.value = 9999
|
||||
|
||||
}
|
||||
// console.log("?????", timearr.value[0].children)
|
||||
}
|
||||
const routerPush = () => {
|
||||
uni.setStorageSync("timearr", timearr.value)
|
||||
|
@ -1182,16 +1246,28 @@
|
|||
url: `/pages/timeMatrix/index?currentNumber=${currentNumber.value}`
|
||||
})
|
||||
}
|
||||
const targetRuler = ref({index0: -1,
|
||||
// 暂存器
|
||||
const saveRulerTime = ref({
|
||||
index0: -1,
|
||||
index1: -1
|
||||
})
|
||||
const targetRuler = ref({
|
||||
|
||||
index0: -1,
|
||||
index1: -1,
|
||||
current: -1,
|
||||
bordershow: true
|
||||
})
|
||||
|
||||
const whereEvent = (data : any) => {
|
||||
currentNumber.value = Math.floor(data.index0 / 6);
|
||||
scrollTop.value = 0
|
||||
scrollTop.value = data.index1 * 104
|
||||
|
||||
if (currentNumber.value === Math.floor(data.index0 / 6)) {
|
||||
targetRuler.value.index0 = data.index0 - currentNumber.value * 6;
|
||||
targetRuler.value.index1 = data.index1;
|
||||
saveRulerTime.value.index0 = targetRuler.value.index0;
|
||||
saveRulerTime.value.index1 = targetRuler.value.index1;
|
||||
targetRuler.value.current = currentNumber.value
|
||||
targetRuler.value.bordershow = false;
|
||||
setTimeout(() => {
|
||||
|
@ -1201,7 +1277,33 @@
|
|||
}, 400)
|
||||
setTimeout(() => {
|
||||
targetRuler.value.bordershow = true;
|
||||
saveRulerTime.value.index0 = -1;
|
||||
saveRulerTime.value.index1 = -1;
|
||||
}, 1000)
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
currentNumber.value = Math.floor(data.index0 / 6);
|
||||
}, 100)
|
||||
setTimeout(() => {
|
||||
targetRuler.value.index0 = data.index0 - currentNumber.value * 6;
|
||||
targetRuler.value.index1 = data.index1;
|
||||
saveRulerTime.value.index0 = targetRuler.value.index0;
|
||||
saveRulerTime.value.index1 = targetRuler.value.index1;
|
||||
targetRuler.value.current = currentNumber.value
|
||||
targetRuler.value.bordershow = false;
|
||||
}, 800)
|
||||
setTimeout(() => {
|
||||
targetRuler.value.index0 = -1;
|
||||
targetRuler.value.index1 = -1;
|
||||
targetRuler.value.current = -1
|
||||
}, 1400)
|
||||
setTimeout(() => {
|
||||
targetRuler.value.bordershow = true;
|
||||
saveRulerTime.value.index0 = -1;
|
||||
saveRulerTime.value.index1 = -1;
|
||||
}, 2200)
|
||||
}
|
||||
|
||||
}
|
||||
onShow(() => {
|
||||
uni.$on('where', whereEvent);
|
||||
|
@ -1938,6 +2040,7 @@
|
|||
flex-direction: column;
|
||||
border-right: 1rpx solid transparent;
|
||||
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
||||
// z-index: -10;
|
||||
}
|
||||
|
||||
.super-card-time-card {
|
||||
|
@ -1948,7 +2051,7 @@
|
|||
width: calc(100%);
|
||||
// transition: transform 0.5s ease-out, opacity 0.5s ease-out;
|
||||
transition: all 0.8s;
|
||||
border-top: 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;
|
||||
|
@ -2268,7 +2371,7 @@
|
|||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 450rpx;
|
||||
width: 400rpx;
|
||||
|
||||
.doctorsay-container-juzhen {
|
||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||
|
@ -3078,6 +3181,26 @@
|
|||
position: relative;
|
||||
}
|
||||
|
||||
.title-time-border-big-top {
|
||||
transform: scale(1.5);
|
||||
transform-origin: top;
|
||||
/* 将页面内容放大1.2倍 */
|
||||
border-top: 0rpx solid #fff;
|
||||
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
|
||||
z-index: 999;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 209rpx;
|
||||
width: calc(100%);
|
||||
// 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;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.title-time-border-blue {
|
||||
background-color: #dae8fa;
|
||||
width: calc(100%);
|
||||
|
@ -3154,6 +3277,7 @@
|
|||
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);
|
||||
// z-index: 999;
|
||||
}
|
||||
|
||||
.title-time-border-pouple-active-transparent {
|
||||
|
@ -3182,6 +3306,7 @@
|
|||
align-items: center;
|
||||
flex-direction: column;
|
||||
box-shadow: 8rpx 8rpx 16rpx rgba(123, 97, 255, 0.7);
|
||||
// z-index: 999;
|
||||
}
|
||||
|
||||
.title-time-border-pouple-active {
|
||||
|
@ -3266,20 +3391,49 @@
|
|||
position: absolute;
|
||||
top: 80rpx;
|
||||
left: 0rpx;
|
||||
background-color: #fff;
|
||||
width: 50rpx;
|
||||
height: 211rpx;
|
||||
// background-color: #fff;
|
||||
width: 42rpx;
|
||||
height: 840rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
// justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
|
||||
.boom-son {
|
||||
height: 210rpx;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
letter-spacing: 5rpx;
|
||||
box-shadow: 5rpx 5rpx 10rpx rgba(0, 0, 0, 0.1);
|
||||
// box-shadow: 5rpx 5rpx 10rpx rgba(0, 0, 0, 0.1);s
|
||||
writing-mode: vertical-rl;
|
||||
/* 竖排文字,从右往左 */
|
||||
text-align: center;
|
||||
z-index: 10;
|
||||
/* 确保文字在容器内居中 */
|
||||
background: linear-gradient(to bottom, #ffe2b2, #e3deff);
|
||||
// z-index: -1;
|
||||
border-bottom-right-radius: 40rpx;
|
||||
border-top-right-radius: 40rpx;
|
||||
}
|
||||
|
||||
.boom-son-target {
|
||||
height: 210rpx;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
letter-spacing: 5rpx;
|
||||
// box-shadow: 5rpx 5rpx 10rpx rgba(0, 0, 0, 0.1);s
|
||||
writing-mode: vertical-rl;
|
||||
/* 竖排文字,从右往左 */
|
||||
text-align: center;
|
||||
z-index: 10;
|
||||
/* 确保文字在容器内居中 */
|
||||
background: linear-gradient(to bottom, #ff8a00, #eceaff);
|
||||
// color: #fff;
|
||||
// z-index: -1;
|
||||
border-bottom-right-radius: 40rpx;
|
||||
border-top-right-radius: 40rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -137,12 +137,6 @@
|
|||
const translateY = Math.floor(touch.clientY) - 25;
|
||||
|
||||
const clickedItem = fangkuaiValue.value.find(item => {
|
||||
|
||||
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);
|
||||
});
|
||||
|
|
|
@ -6,21 +6,41 @@
|
|||
<view class="doctorsay-container-left-font">时间矩阵</view>
|
||||
</view>
|
||||
<view class="doctorsay-container-right">
|
||||
<view class="titlebutton-father">
|
||||
<view v-for="(item,index) in buttonArray" :key="index">
|
||||
<view :class="getClassItem(index)"
|
||||
@click="changeTarget(index)">
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="doctorsay-container-right-kuai-cheng"></view>
|
||||
<view class="doctorsay-container-kuai-font">日常</view>
|
||||
<view class="doctorsay-container-right-kuai-zi"></view>
|
||||
<view class="doctorsay-container-kuai-font">周期</view>
|
||||
<view class="doctorsay-container-juzhen" @click="routerBack">
|
||||
取消预览
|
||||
返回
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="super-card">
|
||||
<view class="super-card-container">
|
||||
<view class="boom">
|
||||
<view :style="{ marginTop: `-${2 *moveDownNumber}rpx` }">
|
||||
<view v-for="(item,index) in timearr[0].children" :key="index">
|
||||
<view
|
||||
:class="(clickY === index) ? `boom-son-target`: `boom-son`"
|
||||
v-show="item.serve">
|
||||
{{item.serve}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view style="height: 100%;width: 100%;" :scroll-left="scrollLeft" scroll-x
|
||||
:show-scrollbar="false">
|
||||
<view
|
||||
style="display: flex;width: 6690rpx; box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);background: linear-gradient(to right, #c4dbf4,#c9c2ef, #c6dcf3);">
|
||||
style="display: flex;width: 5945rpx; box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);background: linear-gradient(to right, #c4dbf4,#c9c2ef, #c6dcf3);">
|
||||
<view v-for="(item0,index0) in timearr" :key="index0">
|
||||
<view class="super-card-time">
|
||||
{{item0.time}}
|
||||
|
@ -28,10 +48,10 @@
|
|||
</view>
|
||||
</view>
|
||||
|
||||
<view style="display: flex;height: calc(100% - 80rpx);width: 6690rpx">
|
||||
<scroll-view scroll-y :show-scrollbar="false">
|
||||
<view style="display: flex;height: calc(100% - 80rpx);width: 5945rpx">
|
||||
<scroll-view scroll-y :show-scrollbar="false" @scroll="handleScrolltime">
|
||||
<view style="display: flex;height: 100%;">
|
||||
<view v-for="(item0,index0) in timearr" :key="index0">
|
||||
<view v-for="(item0,index0) in changetimearr" :key="index0">
|
||||
<view class="super-card-time-und">
|
||||
<view v-for="(item1,index1) in item0.children" style="width: 100%;"
|
||||
:key="index1">
|
||||
|
@ -45,8 +65,8 @@
|
|||
<view :class="getClass(item1,index0,index1)"
|
||||
style="font-size: 30rpx;overflow: hidden;">
|
||||
<view class="title-time" v-if="item1.time"
|
||||
style="margin-top: 5rpx;">
|
||||
<view class="title-time-time" style="font-size: 30rpx;">
|
||||
style="margin-top: 0rpx;">
|
||||
<view class="title-time-time" style="font-size: 25rpx;">
|
||||
{{item1.time}}
|
||||
</view>
|
||||
<image class="title-time-button"
|
||||
|
@ -55,7 +75,7 @@
|
|||
{{item1.type}}
|
||||
</view>
|
||||
</view>
|
||||
<view style="margin-top: 20rpx;font-weight: 700;font-size: 35rpx;">
|
||||
<view :style="splitString(item1.value)[1] ? {}:{marginTop:`20rpx`}" style="font-weight: 700;font-size: 24rpx;">
|
||||
{{splitString(item1.value)[0]}}
|
||||
</view>
|
||||
<view class="down-icons"
|
||||
|
@ -81,7 +101,7 @@
|
|||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 长按的弹出层 -->
|
||||
<!-- 长按的弹出层` -->
|
||||
<view v-show="isopen" class="popup-overlay" @click="closeIsOpen">
|
||||
<view class="popup-overlay-content"
|
||||
:style="{ top: (2*openY - 350) + 'rpx',left: (2*openX - 780) + 'rpx',opacity: isopacity ? 1 : 0,backgroundColor:timearr[clickY]?.children[clickX]?.type==='日常'? '#fffcf6':'rgb(246, 244, 254)' }"
|
||||
|
@ -114,6 +134,8 @@
|
|||
type darkFanstype = {
|
||||
darkFans : boolean
|
||||
}
|
||||
const buttonArray = ref(["全部", "日常", "周期"]);
|
||||
const buttonTarget = ref(0);
|
||||
// 方法:根据条件返回不同的类名
|
||||
const getClass = (item : any, index0 : number, index1 : number) => {
|
||||
if (item.type === '日常') {
|
||||
|
@ -124,6 +146,29 @@
|
|||
}
|
||||
return 'title-time-border';
|
||||
}
|
||||
const moveDownNumber = ref(0);
|
||||
function handleScrolltime(e) {
|
||||
let num = e.detail.scrollTop
|
||||
let formattedNum = parseFloat(num.toFixed(2));
|
||||
moveDownNumber.value = formattedNum
|
||||
}
|
||||
const getClassItem = (index) =>{
|
||||
if(buttonTarget.value!==index){
|
||||
return `titlebutton`
|
||||
}else{
|
||||
switch(index){
|
||||
case 0:
|
||||
return `titlebutton-target`
|
||||
|
||||
case 1:
|
||||
return `titlebutton-target-yellow`
|
||||
|
||||
case 2:
|
||||
return `titlebutton-target-pouple`
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
// 切割bigArray
|
||||
function splitString(str : any) {
|
||||
// 使用正则表达式找到所有括号的内容
|
||||
|
@ -157,18 +202,24 @@
|
|||
return result;
|
||||
}
|
||||
const scrollLeft = ref(0);
|
||||
const changetimearr = ref([]);
|
||||
// 生命周期钩子
|
||||
onLoad((options) => {
|
||||
if (options.currentNumber) {
|
||||
scrollLeft.value = options.currentNumber * 836
|
||||
}
|
||||
|
||||
timearr.value = uni.getStorageSync("timearr")
|
||||
if (timearr.value[0].children.length === 4) {
|
||||
timearr.value.forEach((element : any) => {
|
||||
element.children.push({ value: "" })
|
||||
})
|
||||
if (options.currentNumber) {
|
||||
scrollLeft.value = options.currentNumber * 745
|
||||
}
|
||||
timearr.value = uni.getStorageSync("timearr")
|
||||
|
||||
if(timearr.value[0].children.length < 8){
|
||||
timearr.value.forEach((element: any) => {
|
||||
// 循环直到长度达到 7
|
||||
while (element.children.length < 8) {
|
||||
element.children.push({ value: "" });
|
||||
}
|
||||
});
|
||||
}
|
||||
changetimearr.value = JSON.parse(JSON.stringify(timearr.value));
|
||||
});
|
||||
const openX = ref(0);
|
||||
const openY = ref(0);
|
||||
|
@ -190,9 +241,9 @@
|
|||
if (res.dataset.index0 == index0 && res.dataset.index1 == index1) {
|
||||
if (res.left < 500) {
|
||||
// 表格太靠左侧,修改到右面
|
||||
openX.value = Math.floor(res.left) + 520;
|
||||
openX.value = Math.floor(res.left) + 510;
|
||||
} else {
|
||||
openX.value = Math.floor(res.left)
|
||||
openX.value = Math.floor(res.left) -10
|
||||
}
|
||||
if (res.top < 300) {
|
||||
// 表格太靠上侧,修改到下面
|
||||
|
@ -200,7 +251,7 @@
|
|||
} else {
|
||||
openY.value = Math.floor(res.top)
|
||||
}
|
||||
// openY.value = Math.floor(res.top);
|
||||
// openY.value = Math.floor(res.top)
|
||||
await nextTick()
|
||||
isopen.value = true;
|
||||
isopacity.value = false;
|
||||
|
@ -227,6 +278,7 @@
|
|||
uni.navigateBack()
|
||||
}
|
||||
const closeIsOpen = (event : any) => {
|
||||
|
||||
const touch = event.touches[0];
|
||||
let clientX = (Math.floor(touch.clientX))
|
||||
let clientY = (Math.floor(touch.clientY))
|
||||
|
@ -237,8 +289,10 @@
|
|||
data.forEach(async (res : any) => {
|
||||
// 根据你的条件筛选元素
|
||||
if (res.dataset.index0 == clickX.value && res.dataset.index1 == clickY.value) {
|
||||
// console.log("?????",clientX,clientY)
|
||||
if (clientX >= Math.floor(res.left) && clientX <= Math.floor(res.right) &&
|
||||
clientY >= Math.floor(res.top) && clientY <= Math.floor(res.bottom)) {
|
||||
|
||||
//调用上一个页面中的方法
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
|
@ -262,6 +316,46 @@
|
|||
}, 100)
|
||||
|
||||
|
||||
}
|
||||
const changeTarget = (index : number) => {
|
||||
if (buttonTarget.value !== index) {
|
||||
changetimearr.value = []
|
||||
buttonTarget.value = index
|
||||
// console.log("????", index, buttonTarget.value)
|
||||
switch (index) {
|
||||
case 0:
|
||||
changetimearr.value = JSON.parse(JSON.stringify(timearr.value));
|
||||
break;
|
||||
case 1:
|
||||
changetimearr.value = JSON.parse(JSON.stringify(timearr.value));
|
||||
changetimearr.value.forEach((element0 : any) => {
|
||||
element0.children.forEach((element1 : any) => {
|
||||
if (element1.value && element1.type !== "日常") {
|
||||
element1.value = "";
|
||||
element1.serve = "";
|
||||
element1.type = "";
|
||||
element1.time = "";
|
||||
}
|
||||
})
|
||||
})
|
||||
// console.log("chufa", changetimearr.value)
|
||||
break;
|
||||
case 2:
|
||||
changetimearr.value = JSON.parse(JSON.stringify(timearr.value));
|
||||
changetimearr.value.forEach((element0 : any) => {
|
||||
element0.children.forEach((element1 : any) => {
|
||||
if (element1.value && element1.type === "日常") {
|
||||
element1.value = "";
|
||||
element1.serve = "";
|
||||
element1.type = "";
|
||||
element1.time = "";
|
||||
}
|
||||
})
|
||||
})
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -438,7 +532,7 @@
|
|||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 450rpx;
|
||||
width: 800rpx;
|
||||
|
||||
.doctorsay-container-juzhen {
|
||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||
|
@ -557,7 +651,7 @@
|
|||
align-items: center;
|
||||
// background-color: rgb(233, 239, 257);
|
||||
height: 80rpx;
|
||||
width: 278rpx;
|
||||
width: 247rpx;
|
||||
border-right: 1rpx solid transparent;
|
||||
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
||||
font-weight: 700;
|
||||
|
@ -567,7 +661,7 @@
|
|||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 278rpx;
|
||||
width: 247rpx;
|
||||
|
||||
flex-direction: column;
|
||||
border-right: 1rpx solid transparent;
|
||||
|
@ -578,7 +672,7 @@
|
|||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 247rpx;
|
||||
height: 153rpx;
|
||||
width: calc(100%);
|
||||
// border-right: 1rpx solid transparent;
|
||||
border-top: 1rpx solid transparent;
|
||||
|
@ -694,9 +788,9 @@
|
|||
}
|
||||
|
||||
.down-icons {
|
||||
margin-top: 30rpx;
|
||||
margin-top: 5rpx;
|
||||
width: 100%;
|
||||
height: 75rpx;
|
||||
height: 58rpx;
|
||||
background-color: rgb(255, 216, 126);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
@ -704,8 +798,8 @@
|
|||
|
||||
.icon {
|
||||
margin: 0 5rpx;
|
||||
font-size: 28rpx;
|
||||
padding: 5rpx 10rpx;
|
||||
font-size: 20rpx;
|
||||
padding: 3rpx 5rpx;
|
||||
background-color: rgb(255, 138, 0);
|
||||
color: #fff;
|
||||
border-radius: 5rpx;
|
||||
|
@ -813,4 +907,103 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.titlebutton-father {
|
||||
display: flex;
|
||||
margin-right: 20rpx;
|
||||
|
||||
.titlebutton {
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 10rpx 30rpx;
|
||||
border-radius: 20rpx;
|
||||
font-size: 27rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.titlebutton-target {
|
||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 10rpx 30rpx;
|
||||
border-radius: 20rpx;
|
||||
font-size: 27rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.titlebutton-target-yellow{
|
||||
background: #FFDBA1;
|
||||
// color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 10rpx 30rpx;
|
||||
border-radius: 20rpx;
|
||||
font-size: 27rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.titlebutton-target-pouple{
|
||||
background: #7B61FF;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 10rpx 30rpx;
|
||||
border-radius: 20rpx;
|
||||
font-size: 27rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
.boom {
|
||||
position: absolute;
|
||||
top: 80rpx;
|
||||
left: 0rpx;
|
||||
// background-color: #fff;
|
||||
width: 30rpx;
|
||||
height: 1500rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
|
||||
.boom-son {
|
||||
height: 153rpx;
|
||||
width: 100%;
|
||||
font-size: 22rpx;
|
||||
letter-spacing: 5rpx;
|
||||
// box-shadow: 5rpx 5rpx 10rpx rgba(0, 0, 0, 0.1);s
|
||||
writing-mode: vertical-rl;
|
||||
/* 竖排文字,从右往左 */
|
||||
text-align: center;
|
||||
z-index: 10;
|
||||
/* 确保文字在容器内居中 */
|
||||
background: linear-gradient(to bottom, #ffe2b2, #e3deff);
|
||||
// z-index: -1;
|
||||
border-bottom-right-radius: 40rpx;
|
||||
border-top-right-radius: 40rpx;
|
||||
}
|
||||
|
||||
.boom-son-target {
|
||||
height: 153rpx;
|
||||
width: 100%;
|
||||
font-size: 22rpx;
|
||||
letter-spacing: 5rpx;
|
||||
// box-shadow: 5rpx 5rpx 10rpx rgba(0, 0, 0, 0.1);
|
||||
writing-mode: vertical-rl;
|
||||
/* 竖排文字,从右往左 */
|
||||
text-align: center;
|
||||
z-index: 10;
|
||||
/* 确保文字在容器内居中 */
|
||||
background: linear-gradient(to bottom, #ff8a00, #eceaff);
|
||||
// color: #fff;
|
||||
// z-index: -1;
|
||||
border-bottom-right-radius: 40rpx;
|
||||
border-top-right-radius: 40rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
;(function(){
|
||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","bounce":"none","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app x","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"养老App","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.56","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","bounce":"none","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app x","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"养老App","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.57","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/login/login","meta":{"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/timeMatrix/index","meta":{"navigationBar":{"style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
__uniConfig.styles=[];//styles
|
||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -89,7 +89,7 @@
|
|||
"uni-app": {
|
||||
"control": "uni-v3",
|
||||
"vueVersion": "3",
|
||||
"compilerVersion": "4.56",
|
||||
"compilerVersion": "4.57",
|
||||
"nvueCompiler": "uni-app",
|
||||
"renderer": "auto",
|
||||
"nvue": {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -145,7 +145,7 @@
|
|||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 14.0625rem;
|
||||
width: 25rem;
|
||||
}
|
||||
.doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-juzhen[data-v-11ec1ae8] {
|
||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||
|
@ -245,7 +245,7 @@
|
|||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 2.5rem;
|
||||
width: 8.6875rem;
|
||||
width: 7.71875rem;
|
||||
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;
|
||||
|
@ -254,7 +254,7 @@
|
|||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 8.6875rem;
|
||||
width: 7.71875rem;
|
||||
flex-direction: column;
|
||||
border-right: 0.03125rem solid transparent;
|
||||
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 0.1875rem, transparent 0.1875rem, transparent 0.375rem) 1;
|
||||
|
@ -263,7 +263,7 @@
|
|||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 7.71875rem;
|
||||
height: 4.78125rem;
|
||||
width: calc(100%);
|
||||
border-top: 0.03125rem solid transparent;
|
||||
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 0.1875rem, transparent 0.1875rem, transparent 0.375rem) 1;
|
||||
|
@ -340,9 +340,9 @@
|
|||
color: #fff;
|
||||
}
|
||||
.down-icons[data-v-11ec1ae8] {
|
||||
margin-top: 0.9375rem;
|
||||
margin-top: 0.15625rem;
|
||||
width: 100%;
|
||||
height: 2.34375rem;
|
||||
height: 1.8125rem;
|
||||
background-color: #ffd87e;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
@ -350,8 +350,8 @@
|
|||
}
|
||||
.down-icons .icon[data-v-11ec1ae8] {
|
||||
margin: 0 0.15625rem;
|
||||
font-size: 0.875rem;
|
||||
padding: 0.15625rem 0.3125rem;
|
||||
font-size: 0.625rem;
|
||||
padding: 0.09375rem 0.15625rem;
|
||||
background-color: #ff8a00;
|
||||
color: #fff;
|
||||
border-radius: 0.15625rem;
|
||||
|
@ -442,3 +442,91 @@
|
|||
height: 2.1875rem;
|
||||
animation: shake 0.5s 3;
|
||||
}
|
||||
.titlebutton-father[data-v-11ec1ae8] {
|
||||
display: flex;
|
||||
margin-right: 0.625rem;
|
||||
}
|
||||
.titlebutton-father .titlebutton[data-v-11ec1ae8] {
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 0.3125rem 0.9375rem;
|
||||
border-radius: 0.625rem;
|
||||
font-size: 0.84375rem;
|
||||
margin-right: 0.3125rem;
|
||||
}
|
||||
.titlebutton-father .titlebutton-target[data-v-11ec1ae8] {
|
||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 0.3125rem 0.9375rem;
|
||||
border-radius: 0.625rem;
|
||||
font-size: 0.84375rem;
|
||||
margin-right: 0.3125rem;
|
||||
}
|
||||
.titlebutton-father .titlebutton-target-yellow[data-v-11ec1ae8] {
|
||||
background: #FFDBA1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 0.3125rem 0.9375rem;
|
||||
border-radius: 0.625rem;
|
||||
font-size: 0.84375rem;
|
||||
margin-right: 0.3125rem;
|
||||
}
|
||||
.titlebutton-father .titlebutton-target-pouple[data-v-11ec1ae8] {
|
||||
background: #7B61FF;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 0.3125rem 0.9375rem;
|
||||
border-radius: 0.625rem;
|
||||
font-size: 0.84375rem;
|
||||
margin-right: 0.3125rem;
|
||||
}
|
||||
.boom[data-v-11ec1ae8] {
|
||||
position: absolute;
|
||||
top: 2.5rem;
|
||||
left: 0;
|
||||
width: 0.9375rem;
|
||||
height: 46.875rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
}
|
||||
.boom .boom-son[data-v-11ec1ae8] {
|
||||
height: 4.78125rem;
|
||||
width: 100%;
|
||||
font-size: 0.6875rem;
|
||||
letter-spacing: 0.15625rem;
|
||||
-webkit-writing-mode: vertical-rl;
|
||||
writing-mode: vertical-rl;
|
||||
/* 竖排文字,从右往左 */
|
||||
text-align: center;
|
||||
z-index: 10;
|
||||
/* 确保文字在容器内居中 */
|
||||
background: linear-gradient(to bottom, #ffe2b2, #e3deff);
|
||||
border-bottom-right-radius: 1.25rem;
|
||||
border-top-right-radius: 1.25rem;
|
||||
}
|
||||
.boom .boom-son-target[data-v-11ec1ae8] {
|
||||
height: 4.78125rem;
|
||||
width: 100%;
|
||||
font-size: 0.6875rem;
|
||||
letter-spacing: 0.15625rem;
|
||||
-webkit-writing-mode: vertical-rl;
|
||||
writing-mode: vertical-rl;
|
||||
/* 竖排文字,从右往左 */
|
||||
text-align: center;
|
||||
z-index: 10;
|
||||
/* 确保文字在容器内居中 */
|
||||
background: linear-gradient(to bottom, #ff8a00, #eceaff);
|
||||
border-bottom-right-radius: 1.25rem;
|
||||
border-top-right-radius: 1.25rem;
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue