This commit is contained in:
Teng 2025-04-17 17:18:37 +08:00
parent 643d29e47d
commit 265dabc191
27 changed files with 1397 additions and 402 deletions

View File

@ -25,20 +25,20 @@ import { reactive } from 'vue'
const emit = defineEmits(['movecard'])
const icons = reactive({
up: '/static/index/movemode/upicon.png',
right: '/static/index/movemode/righticon.png',
down: '/static/index/movemode/downicon.png',
left: '/static/index/movemode/lefticon.png'
up: '/static/index/movemode/bupicon.png',
right: '/static/index/movemode/brighticon.png',
down: '/static/index/movemode/bdownicon.png',
left: '/static/index/movemode/blefticon.png'
})
function handleClick(key, dir) {
icons[key] = `/static/index/movemode/blue${key}icon.png`
// icons[key] = `/static/index/movemode/blue${key}icon.png`
emit('movecard', dir)
//
setTimeout(() => {
icons[key] = `/static/index/movemode/${key}icon.png`
}, 150)
// setTimeout(() => {
// icons[key] = `/static/index/movemode/${key}icon.png`
// }, 150)
}
</script>
@ -46,11 +46,15 @@ function handleClick(key, dir) {
.move-circle {
position: absolute;
bottom: 300rpx;
left: -200rpx;
left: 0;
width: 350rpx;
height: 350rpx;
border-radius: 50%;
background-color: rgba(127, 127, 127, 0.3);
// border-radius: 50%;
background-image: url('/static/index/movemode/bj.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
// background-color: rgba(127, 127, 127, 0.3);
z-index: 9999;
}
.container-img {

View File

@ -1,6 +1,9 @@
<template>
<view class="all-circle">
<view class="move-circle" @click="confirm">
<view class="move-circle" v-show="!gray" @click="confirm">
确认
</view>
<view class="move-circle-bad" v-show="gray">
确认
</view>
<view v-show="clickstauts" class="delete-circle" @click="back">
@ -22,7 +25,10 @@
type: Number,
required: true,
},
gray:{
type: Boolean,
required: true,
}
});
const confirm = () =>{
emit('clickcircle',0)
@ -56,6 +62,22 @@
font-size: 35rpx;
justify-content: center;
}
.move-circle-bad{
position: absolute;
bottom: 200rpx;
right: 40rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background-color: #c2c9d3;
// opacity:0.5;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 35rpx;
justify-content: center;
}
.delete-circle{
position: absolute;
bottom: 50rpx;

View File

@ -0,0 +1,88 @@
<template>
<view class="all-circle">
<view class="move-circle" @click="confirm">
{{ismove? `确定`:`移动`}}
</view>
<view class="delete-circle-bad" @click="back">
{{ismove? `取消`:`删除`}}
</view>
</view>
</template>
<script setup lang="ts">
import {
ref
} from 'vue'
const props = defineProps({
ismove: {
type: Boolean,
required: true,
},
});
const emit = defineEmits(['clickcard']);
const confirm = () =>{
emit('clickcard',0)
}
const back = () =>{
emit('clickcard',1)
}
</script>
<style scoped lang="less">
.all-circle{
position: absolute;
bottom: 300rpx;
right: 50rpx;
width: 500rpx;
height: 500rpx;
}
.move-circle{
position: absolute;
bottom: 200rpx;
right: 40rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
// opacity:0.5;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 35rpx;
justify-content: center;
}
.delete-circle{
position: absolute;
bottom: 50rpx;
right: 150rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
// opacity:0.5;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 35rpx;
justify-content: center;
}
.delete-circle-bad{
position: absolute;
bottom: 50rpx;
right: 150rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background-color: #c2c9d3;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 35rpx;
justify-content: center;
}
</style>

View File

@ -0,0 +1,81 @@
<template>
<view class="all-circle">
<view class="move-circle" @click="confirm">
确定
</view>
<view class="delete-circle-bad" @click="back">
取消
</view>
</view>
</template>
<script setup lang="ts">
import {
ref
} from 'vue'
const emit = defineEmits(['clickdelete']);
const confirm = () =>{
emit('clickdelete',0)
}
const back = () =>{
emit('clickdelete',1)
}
</script>
<style scoped lang="less">
.all-circle{
position: absolute;
bottom: 300rpx;
right: 50rpx;
width: 500rpx;
height: 500rpx;
}
.move-circle{
position: absolute;
bottom: 200rpx;
right: 40rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
// opacity:0.5;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 35rpx;
justify-content: center;
}
.delete-circle{
position: absolute;
bottom: 50rpx;
right: 150rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
// opacity:0.5;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 35rpx;
justify-content: center;
}
.delete-circle-bad{
position: absolute;
bottom: 50rpx;
right: 150rpx;
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background-color: #c2c9d3;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 35rpx;
justify-content: center;
}
</style>

View File

@ -1002,7 +1002,7 @@
margin-left: 30rpx;
margin-right: 30rpx;
margin-top: 20rpx;
.month-one {
width: 75rpx;
height: 75rpx;

View File

@ -252,7 +252,7 @@
</view>
</view>
</view>
<!-- 拉动松手的弹出层 -->
<!-- 点击右侧按钮的弹出层 -->
<view v-if="songisopen" class="popup-song" @click="songisopen=false">
<view class="popup-song-contain" :style="{opacity: songisopacity ? 1 : 0}" @click.stop>
<view class="popup-song-father">
@ -1084,7 +1084,6 @@
//
const rulerEnd = async (res : any) => {
isBack.value = false;
console.log("!!!!", props.liang.index0 !== 999 && res)
if (props.liang.index0 !== 999 && res) {
//
if (redNameindex0.value.includes(props.liang.index0 + (currentNumber.value * 6)) || redNameindex1.value !== props.liang.index1) {

View File

@ -68,37 +68,40 @@
height: 100vh;
transition: opacity 1s ease;
position: relative;
.joystick {
position: absolute;
bottom: 200rpx;
left: 20rpx;
width: 300rpx;
height: 300rpx;
z-index: 9999;
position: absolute;
bottom: 200rpx;
left: 20rpx;
width: 300rpx;
height: 300rpx;
z-index: 9999;
}
.outer-circle {
width: 100%;
height: 100%;
border-radius: 50%;
background-color: rgba(127,127,127,0.1);
position: relative;
width: 100%;
height: 100%;
border-radius: 50%;
background-color: rgba(127, 127, 127, 0.1);
position: relative;
}
.inner-circle {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
background-color: rgba(127,127,127,0.3);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 120rpx;
height: 120rpx;
border-radius: 50%;
background-color: rgba(127, 127, 127, 0.3);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.doctorsay-container-view {
width: 100%;
height: 1220rpx;
display: flex;
.doctorsay-container-container {
border: 2rpx solid #fff;
width: 2050rpx;
@ -457,7 +460,16 @@
z-index: 999;
font-size: 50rpx;
}
.title-time-blue {
position: absolute;
top: 0rpx;
left: 0rpx;
z-index: 10;
.title-time-blue-img{
height: 209rpx;
width: 226rpx;
}
}
.title-time {
display: flex;
width: 100%;
@ -465,13 +477,13 @@
.title-time-time {
font-size: 32rpx;
margin-left: 20rpx;
margin-left: 10rpx;
margin-top: 12rpx;
}
.title-time-button {
position: absolute;
top: -4rpx;
top: -6rpx;
right: -4rpx;
width: 65rpx;
height: 60rpx;
@ -487,7 +499,7 @@
.title-time-font {
position: absolute;
top: 7rpx;
top: 3rpx;
right: 5rpx;
font-size: 20rpx;
color: #fff;
@ -510,14 +522,14 @@
.popup-delete-content {
position: absolute;
right: 515rpx;
right: 750rpx;
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);
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
border: 2rpx solid #fff;
/* 使用 screen 混合模式,让图像与白色混合变淡 */
@ -552,6 +564,7 @@
justify-content: center;
align-items: center;
color: #fff;
margin: 0 10rpx;
}
.popup-delete-button-right {
@ -562,7 +575,7 @@
display: flex;
justify-content: center;
align-items: center;
margin-right: 20rpx;
margin: 0 10rpx;
}
}
}
@ -749,8 +762,9 @@
margin-left: 30rpx;
margin-right: 30rpx;
margin-bottom: 60rpx;
.arrayindex-one {
width: 222rpx;
width: 285rpx;
height: 100rpx;
margin-left: 20rpx;
margin-top: 20rpx;
@ -764,7 +778,7 @@
}
.arrayindex-one-target {
width: 222rpx;
width: 285rpx;
height: 100rpx;
margin-left: 20rpx;
margin-top: 20rpx;
@ -778,6 +792,7 @@
font-size: 29rpx;
}
}
.secondarrayindex {
display: flex;
flex-wrap: wrap;
@ -786,6 +801,7 @@
margin-left: 30rpx;
margin-right: 30rpx;
margin-bottom: 60rpx;
.arrayindex-one {
width: 380rpx;
height: 100rpx;
@ -799,7 +815,7 @@
align-items: center;
font-size: 29rpx;
}
.arrayindex-one-target {
width: 380rpx;
height: 100rpx;
@ -922,7 +938,7 @@
margin-left: 30rpx;
margin-right: 30rpx;
margin-top: 20rpx;
margin-bottom: 30rpx;
.month-one {
width: 75rpx;
height: 75rpx;
@ -960,6 +976,7 @@
margin-left: 30rpx;
margin-right: 30rpx;
margin-top: 20rpx;
margin-bottom: 30rpx;
.week-one {
width: 200rpx;
@ -997,6 +1014,7 @@
flex-wrap: wrap;
margin-left: 75rpx;
margin-right: 30rpx;
/* margin-bottom: 30rpx; */
.radio-circle {
margin-top: 2rpx;
@ -1034,6 +1052,12 @@
margin-right: 60rpx;
font-size: 29rpx;
}
.radio-font-target {
color: rgb(2, 171, 254);;
margin-left: 15rpx;
margin-right: 60rpx;
font-size: 29rpx;
}
}
.title-time-border {
@ -1223,7 +1247,7 @@
}
.down-icons {
margin-top: 10rpx;
margin-top: 17rpx;
width: 100%;
height: 60rpx;
background-color: rgb(255, 216, 126);
@ -1300,14 +1324,18 @@
#0184db calc(50% - 1px),
#0184db calc(50% + 1px),
transparent calc(50% + 1px));
.boom-title-left{
.boom-title-left {
position: absolute;
top: 40rpx;
left: 10rpx;
font-size: 25rpx;
font-weight: 700;
};
.boom-title-right{
}
;
.boom-title-right {
position: absolute;
top: 10rpx;
left: 60rpx;

View File

@ -6,9 +6,16 @@
<!-- 轮盘 -->
<joystick v-show="isEdit" @movecard="movecard" />
<!-- 按钮 -->
<skill v-show="isEdit && songisopen" :clickstauts="clickstauts" @clickcircle="clickcircle" />
<skill v-show="isEdit && songisopen && !isMove && !deleteisopen" :clickstauts="clickstauts"
:gray="cardsumit.weekTimeNumber===-1 && cardsumit.monthTimeNumber===-1&&clickstauts === 2"
@clickcircle="clickcircle" />
<!-- 新增 -->
<skilladd v-show="isEdit && !songisopen" @getDownListIndex="openAdd" />
<skilladd v-show="!haveName && isEdit && !songisopen && !isMove" @getDownListIndex="openAdd" />
<!-- 移动 -->
<skillmove v-show="(haveName && isEdit && !songisopen) ||(isEdit && !songisopen && isMove)" :ismove="isMove"
@clickcard="changecard" />
<!-- 删除 -->
<skilmovedelete v-show="deleteisopen" @clickdelete="clickdelete" />
<view class="right-container-title-nav">
<text :class="darkFans?`right-container-title-no-dark`:`right-container-title-no`">
ID12345678
@ -119,7 +126,9 @@
@click.stop="deleteItems(item1,index0,index1)">
-
</view>
<view class="title-time-blue" v-show="saveEditIndex.index0 == index0 && saveEditIndex.index1 == index1">
<image class="title-time-blue-img" :src="isMove?`/static/index/movemode/targetcheng.png`: `/static/index/movemode/target.png`" />
</view>
<view :class="getClass(item1,index0,index1)"
style="font-size: 30rpx;overflow: hidden;"
:style="{ animationDelay:`-${computeDelay(index0, index1).toFixed(2)}s` }">
@ -127,7 +136,7 @@
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove"
style="margin-top: 5rpx;">
<view class="title-time-time"
style="font-size: 30rpx;">
style="font-size: 25rpx;">
{{item1.startTime + `-` + item1.endTime}}
</view>
<image class="title-time-button"
@ -217,8 +226,8 @@
</view>
</view>
</view>
<!-- 拉动松手的弹出层 -->
<view v-if="songisopen" class="popup-song" @click="">
<!-- 选择的弹出层 -->
<view v-if="songisopen" class="popup-song">
<view class="popup-song-contain" :style="{opacity: songisopacity ? 1 : 0}" @click.stop>
<view class="popup-song-father">
<image class="shu-up-img" src="/static/index/cheng.png" />
@ -261,24 +270,59 @@
</view>
</view>
</view>
<view class="shu-container-left" v-show="clickstauts===2">
<view class="shu-container-left-gun"></view>
<view class="shu-container-left-font">周期类型</view>
</view>
<view class="radio-father" v-show="clickstauts===2">
<view :class="isweek?`radio-circle-target`: `radio-circle`"></view>
<view :class="isweek&&selectType? `radio-font-target` : `radio-font`">每周</view>
<view :class="!isweek?`radio-circle-target`: `radio-circle`"></view>
<view :class="!isweek&&selectType? `radio-font-target` : `radio-font`">每月</view>
</view>
<view class="week-father" v-show="isweek&&clickstauts===2">
<view v-for="(item,index) in weekDays" :key="index">
<view :class="cardsumit.weekTimeNumber===index?`week-one-target`:`week-one`">
{{item}}
</view>
</view>
</view>
<view class="month-father" v-show="!isweek&&clickstauts===2">
<view v-for="(item,index) in days" :key="index">
<view :class="cardsumit.monthTimeNumber===index?`month-one-target`:`month-one`">
{{item}}
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 删除表格的的弹出层 -->
<view v-show="deleteisopen" class="popup-delete" @click="deleteisopen=false">
<view class="popup-delete-content" :style="{ opacity: deleteisopacity ? 1 : 0 }" @click.stop>
<view class="popup-delete-content" style="padding-top: 30rpx;" :style="{ opacity: deleteisopacity ? 1 : 0 }"
@click.stop>
<image class="popup-delete-img" src="/static/index/deleteicon.png" />
<view class="popup-delete-text">
<view style="margin-top: 30rpx;" class="popup-delete-text">
确定要删除 {{deletename}} ?
</view>
<view class="popup-delete-button">
<view class="popup-delete-button-right" @click="deleteisopen=false">
<!-- <view class="popup-delete-button">
<view :class="!deleteButton? `popup-delete-button-right`:`popup-delete-button-left`" @click="deleteisopen=false">
取消
</view>
<view class="popup-delete-button-left" @click="deleteRuler(deleteindex[0],deleteindex[1])">
<view :class="deleteButton? `popup-delete-button-right`:`popup-delete-button-left`" @click="deleteRuler(deleteindex[0],deleteindex[1]);isHave()">
确定
</view>
</view> -->
</view>
</view>
<!-- 替换表格的的弹出层 -->
<view v-show="replacementisopen" class="popup-delete" @click="replacementisopen=false">
<view class="popup-delete-content" style="padding-top: 30rpx;" :style="{ opacity: replacementisopacity ? 1 : 0 }"
@click.stop>
<image class="popup-delete-img" src="/static/index/deleteicon.png" />
<view style="margin-top: 30rpx;" class="popup-delete-text">
该单元格已有服务指令是否替换旧服务指令
</view>
</view>
</view>
@ -326,8 +370,6 @@
</view>
</view>
</view>
</template>
<script setup lang="ts">
@ -340,7 +382,8 @@
import joystick from '@/component/public/game/joystick.vue';
import skill from '@/component/public/game/skill.vue';
import skilladd from '@/component/public/game/skilladd.vue'
import skillmove from '@/component/public/game/skilmove.vue'
import skilmovedelete from '@/component/public/game/skilmovedelete.vue'
const props = defineProps({
isshow: {
type: Boolean,
@ -369,8 +412,6 @@
bottomisShaking.value = false
shakyTable.value = false
})
onMounted(() => {
})
const bottomItems = ref([
{
name: '纸尿裤',
@ -417,21 +458,101 @@
const deleteisopen = ref(false);
const deletename = ref("")
const deleteisopacity = ref(false)
//
const replacementisopen = ref(false);
const replacementname = ref("")
const replacementisopacity = ref(false)
//
const currentNumber = ref(1);
const scrollKey = ref(0);
const updo = ref(0);
const downdo = ref(0);
const isMove = ref(false);
//
const getNew = () =>{
let object = JSON.parse(JSON.stringify(timearr.value[flyNumber.value.index0].children[flyNumber.value.index1]))
indexsave.value = [saveEditIndex.value.index0 + (currentNumber.value * 8), saveEditIndex.value.index1]
// typeName
let typeName = timearr.value[flyNumber.value.index0].children[flyNumber.value.index1].typeName
// console.log("???",flyNumber.value.index0,flyNumber.value.index1)
timearr.value[flyNumber.value.index0].children[flyNumber.value.index1] = { directiveName: '', typeName: typeName }
//
let newtypeName = timearr.value[indexsave.value[0]].children[indexsave.value[1]].typeName
timearr.value[indexsave.value[0]].children[indexsave.value[1]] = object
timearr.value[indexsave.value[0]].children[indexsave.value[1]].typeName = newtypeName
let startTime = timearr.value[indexsave.value[0]].children[indexsave.value[1]].startTime;
let endTime = timearr.value[indexsave.value[0]].children[indexsave.value[1]].endTime;
let positioning = timearr.value[indexsave.value[0]].positioning
const rest = startTime.split(":")[1]; // ":20"
const rest0 = endTime.split(":")[1];; // ":20"
let many = Number(rest0) - Number(rest);
let start = newtypeName
let end = Number(start) + many
// positioning
timearr.value[indexsave.value[0]].children[indexsave.value[1]].startTime = positioning + ":" + start.padStart(2, '0'); // "9:20"
timearr.value[indexsave.value[0]].children[indexsave.value[1]].endTime = positioning + ":" + String(end % 60).padStart(2, '0'); // "9:20"
flyNumber.value.index0 = -1;
flyNumber.value.index1 = -1;
isMove.value = false;
isHave()
}
const changecard = (type : number) => {
//10
if (isMove.value) {
if(replacementisopen.value){
if(type){
flyNumber.value.index0 = -1;
flyNumber.value.index1 = -1;
isMove.value = false;
}else{
getNew()
}
replacementisopen.value = false;
}else{
if (type) {
flyNumber.value.index0 = -1;
flyNumber.value.index1 = -1;
isMove.value = false
// deleteItems(timearr.value[saveEditIndex.value.index0 + (currentNumber.value * 8)].children[saveEditIndex.value.index1],saveEditIndex.value.index0,saveEditIndex.value.index1)
} else {
if(timearr.value[saveEditIndex.value.index0 + (currentNumber.value * 8)].children[saveEditIndex.value.index1].directiveName){
replacementisopacity.value = false;
replacementisopen.value = true;
setTimeout(() => {
replacementisopacity.value = true
}, 100)
}else{
getNew()
}
}
}
} else {
if (type) {
deleteItems(timearr.value[saveEditIndex.value.index0 + (currentNumber.value * 8)].children[saveEditIndex.value.index1], saveEditIndex.value.index0, saveEditIndex.value.index1)
} else {
flyNumber.value.index0 = saveEditIndex.value.index0 + (currentNumber.value * 8);
flyNumber.value.index1 = saveEditIndex.value.index1;
isMove.value = true
}
}
}
const openAdd = (index : number) => {
selectType.value = true;
cardsumit.value = {
op: {
name: "",
index: [-1, -1, -1],
},
startTime: "",
monthTimeNumber: -1,
monthTime: "",
weekTime: ""
weekTime: "",
weekTimeNumber: -1,
}
songisopacity.value = false;
//
@ -442,21 +563,12 @@
// index
cardsumit.value.op.index[0] = index
cardsumit.value.op.index[1] = 0
// cardsumit.value.op.index[1] = downmenuIndex.value
//
openValue.value.time = timearr.value[saveEditIndex.value.index0 + (currentNumber.value * 8)].positioning;
// console.log("!!!!!!!!!!!",saveEditIndex.value.index0 + (currentNumber.value * 8),)
openValue.value.minute = timearr.value[saveEditIndex.value.index0 + (currentNumber.value * 8)].children[saveEditIndex.value.index1].typeName
openValue.value.array = bigArray.value[index].children;
//
// openValue.value.array.forEach((element : any) => {
// element.relName = element.title + (element.tagName ? element.tagName.split(",").map(item => `${item}`).join("") : "")
// })
//
indexsave.value = [saveEditIndex.value.index0 + (currentNumber.value * 8), saveEditIndex.value.index1]
// clickOp(0, openValue.value.array[0])
}
function dosomesave() {
cardsumit.value.op.name = secondopenValue.value[cardsumit.value.op.index[2]].relName
@ -474,18 +586,22 @@
break;
}
}
const selectType = ref(true);
const deleteButton = ref(false);
//
//
//0123
// songisopen.value
// clickstauts.value
// selectType.value
const movecard = (where : number) => {
if (songisopen.value) {
// clickstauts.value === 1
if (!clickstauts.value) {
switch (where) {
case 0:
if (cardsumit.value.op.index[1] > 4) {
cardsumit.value.op.index[1] = cardsumit.value.op.index[1] - 5
if (cardsumit.value.op.index[1] > 3) {
cardsumit.value.op.index[1] = cardsumit.value.op.index[1] - 4
}
break
case 1:
if (openValue.value.array.length - 1 == cardsumit.value.op.index[1]) {
@ -493,15 +609,13 @@
} else {
cardsumit.value.op.index[1]++;
}
break
case 2:
if (openValue.value.array.length > cardsumit.value.op.index[1] + 5) {
cardsumit.value.op.index[1] = cardsumit.value.op.index[1] + 5
if (openValue.value.array.length > cardsumit.value.op.index[1] + 4) {
cardsumit.value.op.index[1] = cardsumit.value.op.index[1] + 4
} else {
cardsumit.value.op.index[1] = openValue.value.array.length - 1
}
break
case 3:
if (cardsumit.value.op.index[1]) {
@ -509,7 +623,6 @@
} else {
cardsumit.value.op.index[1] = openValue.value.array.length - 1
}
break
}
} else if (clickstauts.value === 1) {
@ -519,7 +632,6 @@
cardsumit.value.op.index[2] = cardsumit.value.op.index[2] - 3
dosomesave()
}
break
case 1:
if (secondopenValue.value.length - 1 == cardsumit.value.op.index[2]) {
@ -546,63 +658,192 @@
dosomesave()
break
}
}
} else {
switch (where) {
case 0:
if (saveEditIndex.value.index1) {
saveEditIndex.value.index1--
} else if (clickstauts.value === 2) {
if (selectType.value) {
if (where === 1 || where === 3) {
isweek.value = !isweek.value
if (isweek.value) {
cardsumit.value.monthTime = '';
cardsumit.value.monthTimeNumber = -1;
} else {
cardsumit.value.weekTime = '';
cardsumit.value.weekTimeNumber = -1;
}
} else if (where === 2) {
if (isweek.value) {
cardsumit.value.weekTime = '周一';
cardsumit.value.weekTimeNumber = 0
} else {
cardsumit.value.monthTime = '01';
cardsumit.value.monthTimeNumber = 0
}
selectType.value = false;
}
if (updo.value) {
updo.value--
} else {
if (isweek.value) {
switch (where) {
case 0:
if (cardsumit.value.weekTimeNumber > 4) {
cardsumit.value.weekTimeNumber = cardsumit.value.weekTimeNumber - 5;
cardsumit.value.weekTime = weekDays[cardsumit.value.weekTimeNumber]
} else {
selectType.value = true;
cardsumit.value.weekTime = ""
cardsumit.value.weekTimeNumber = -1
}
break
case 1:
if (weekDays.length - 1 == cardsumit.value.weekTimeNumber) {
cardsumit.value.weekTimeNumber = 0;
} else {
cardsumit.value.weekTimeNumber++;
}
cardsumit.value.weekTime = weekDays[cardsumit.value.weekTimeNumber]
break
case 2:
if (weekDays.length > cardsumit.value.weekTimeNumber + 5) {
cardsumit.value.weekTimeNumber = cardsumit.value.weekTimeNumber + 5
} else {
cardsumit.value.weekTimeNumber = weekDays.length - 1
}
cardsumit.value.weekTime = weekDays[cardsumit.value.weekTimeNumber]
break
case 3:
if (cardsumit.value.weekTimeNumber) {
cardsumit.value.weekTimeNumber--;
} else {
cardsumit.value.weekTimeNumber = weekDays.length - 1
}
break
}
} else {
if (saveEditIndex.value.index1 < 12) {
scrollTop.value = (saveEditIndex.value.index1) * 104.5
switch (where) {
case 0:
if (cardsumit.value.monthTimeNumber > 11) {
cardsumit.value.monthTimeNumber = cardsumit.value.monthTimeNumber - 12;
cardsumit.value.monthTime = days[cardsumit.value.monthTimeNumber]
} else {
selectType.value = true;
cardsumit.value.monthTime = ""
cardsumit.value.monthTimeNumber = -1
}
break
case 1:
if (days.length - 1 == cardsumit.value.monthTimeNumber) {
cardsumit.value.monthTimeNumber = 0;
} else {
cardsumit.value.monthTimeNumber++;
}
cardsumit.value.monthTime = days[cardsumit.value.monthTimeNumber]
break
case 2:
if (days.length > cardsumit.value.monthTimeNumber + 12) {
cardsumit.value.monthTimeNumber = cardsumit.value.monthTimeNumber + 12
} else {
cardsumit.value.monthTimeNumber = days.length - 1
}
cardsumit.value.monthTime = days[cardsumit.value.monthTimeNumber]
break
case 3:
if (cardsumit.value.monthTimeNumber) {
cardsumit.value.monthTimeNumber--;
} else {
cardsumit.value.monthTimeNumber = days.length - 1
}
break
}
}
}
}
} else {
if (deleteisopen.value) {
deleteButton.value = !deleteButton.value
} else {
switch (where) {
case 0:
if (saveEditIndex.value.index1) {
saveEditIndex.value.index1--
}
downdo.value = 2
}
break
case 1:
saveEditIndex.value.index0++
if (saveEditIndex.value.index0 > 7) {
currentNumber.value++
saveEditIndex.value.index0 = 0;
}
break
case 2:
if (saveEditIndex.value.index1 == 11) {
return
}
saveEditIndex.value.index1++
if (downdo.value) {
downdo.value--
} else {
if (saveEditIndex.value.index1 > 1) {
scrollTop.value = (saveEditIndex.value.index1 - 3) * 104.5
}
updo.value = 2
}
// scrollTop.value = data.index1 * 104
break
case 3:
saveEditIndex.value.index0--
if (saveEditIndex.value.index0 < 0) {
if (currentNumber.value) {
currentNumber.value--
if (updo.value) {
updo.value--
} else {
currentNumber.value = 2
if (saveEditIndex.value.index1 < 12) {
scrollTop.value = (saveEditIndex.value.index1) * 104.5
}
}
saveEditIndex.value.index0 = 7;
}
break
isHave()
break
case 1:
saveEditIndex.value.index0++
if (saveEditIndex.value.index0 > 7) {
if (currentNumber.value == 2) {
currentNumber.value = 0
} else {
currentNumber.value++
}
// currentNumber.value++
saveEditIndex.value.index0 = 0;
}
isHave()
break
case 2:
if (saveEditIndex.value.index1 == 11) {
return
}
saveEditIndex.value.index1++
updo.value = 2
if (downdo.value) {
downdo.value--
} else {
if (saveEditIndex.value.index1 > 1) {
scrollTop.value = (saveEditIndex.value.index1 - 3) * 104.5
}
}
isHave()
break
case 3:
saveEditIndex.value.index0--
if (saveEditIndex.value.index0 < 0) {
if (currentNumber.value) {
currentNumber.value--
} else {
currentNumber.value = 2
}
saveEditIndex.value.index0 = 7;
}
isHave()
break
}
}
}
}
const haveName = ref(false);
const isHave = () => {
// console.log("??????",currentNumber.value * 8)
if (timearr.value[saveEditIndex.value.index0 + (currentNumber.value * 8)].children[saveEditIndex.value.index1].directiveName) {
haveName.value = true;
} else {
haveName.value = false;
}
}
const clickdelete = (type : number) => {
if (type) {
deleteisopen.value = false;
deleteButton.value = false;
} else {
deleteRuler(deleteindex.value[0], deleteindex.value[1]);
isHave()
}
}
//
function pseudoRandom(index0, index1) {
const seed = index0 * 55.9898 + index1 * 78.233;
@ -643,17 +884,17 @@
}
//
const getClass = (item, index0, index1) => {
if (saveEditIndex.value.index0 == index0 && saveEditIndex.value.index1 == index1) {
return 'title-time-border-blue';
}
// if (saveEditIndex.value.index0 == index0 && saveEditIndex.value.index1 == index1) {
// return 'title-time-border-blue';
// }
// else 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) {
return 'title-time-border-blue';
}
else if (item.cycleType === '日常') {
if (flyNumber.value.index0 === (index0 + (currentNumber.value * 8)) && flyNumber.value.index1 === index1 && shakyTable.value) {
// else if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
// return 'title-time-border-blue';
// }
if (item.cycleType === '日常') {
if (flyNumber.value.index0 === (index0 + (currentNumber.value * 8)) && flyNumber.value.index1 === index1) {
return 'title-time-border-yellow-active-transparent';
} else if (shakyTable.value) {
return 'title-time-border-yellow-active';
@ -662,7 +903,7 @@
}
} else if (item.cycleType) {
//
if (flyNumber.value.index0 === (index0 + (currentNumber.value * 8)) && flyNumber.value.index1 === index1 && shakyTable.value) {
if (flyNumber.value.index0 === (index0 + (currentNumber.value * 8)) && flyNumber.value.index1 === index1) {
return 'title-time-border-pouple-active-transparent';
}
else if (shakyTable.value) {
@ -701,7 +942,6 @@
const clickcircle = (index : number) => {
if (!index) {
clickstauts.value++
} else {
if (clickstauts.value) {
clickstauts.value--
@ -709,8 +949,8 @@
songisopen.value = false
}
}
if (clickstauts.value === 1) {
cardsumit.value.op.index[2] = 1
secondopenValue.value = []
secondopenValue.value = openValue.value.array[cardsumit.value.op.index[1]].children
secondopenValue.value.forEach((element : any) => {
@ -718,7 +958,18 @@
})
clickOp(0, secondopenValue.value[0])
}
else if (clickstauts.value === 2){
else if (clickstauts.value === 2) {
if (openOp.value == 1) {
cardsumit.value.weekTime = "";
cardsumit.value.monthTime = "";
isweek.value = true
// clickstauts.value =
} else {
clickstauts.value = 0
movetoruler()
}
} else if (clickstauts.value === 3) {
clickstauts.value = 0
movetoruler()
}
@ -734,6 +985,7 @@
if (isEdit.value) {
saveEditIndex.value.index0 = 0;
saveEditIndex.value.index1 = 0;
isHave()
} else {
saveEditIndex.value.index0 = -1;
saveEditIndex.value.index1 = -1;
@ -908,14 +1160,12 @@
let typeName = timearr.value[index0].children[index1].typeName
timearr.value[index0].children[index1] = { directiveName: "", typeName: typeName };
isopen.value = false;
// saveAll()
deleteisopen.value = false;
}
const longPressTimer = ref(null);
const isScrolling = ref(false)
//
let scrollTimeout = null
function handleScroll(e) {
isScrolling.value = true
//
@ -982,6 +1232,8 @@
index: [-1, -1, -1],
},
startTime: "",
weekTimeNumber: -1,
monthTimeNumber: -1,
monthTime: "",
weekTime: ""
})
@ -1012,64 +1264,16 @@
}
}
const clickTime = (index : string) => {
if (cardsumit.value.startTime == index) {
cardsumit.value.startTime = ""
} else {
cardsumit.value.startTime = index
}
}
// const clickTime = (index : string) => {
// cardsumit.value.startTime = index
// }
const clickweek = (index : string) => {
if (cardsumit.value.weekTime == index) {
cardsumit.value.weekTime = ""
} else {
cardsumit.value.weekTime = index
}
cardsumit.value.weekTime = index
}
const clickmonth = (index : string) => {
if (cardsumit.value.monthTime == index) {
cardsumit.value.monthTime = ""
} else {
cardsumit.value.monthTime = index
}
cardsumit.value.monthTime = index
}
const indexsave = ref([-1, -1]);
//
const rulerEnd = async (res : any) => {
isBack.value = false;
if (props.liang.index0 !== 999 && res) {
cardsumit.value = {
op: {
name: "",
index: [-1, -1, -1],
},
startTime: "",
monthTime: "",
weekTime: ""
}
songisopacity.value = false;
//
songisopen.value = true;
setTimeout(() => {
songisopacity.value = true
}, 100)
// index
cardsumit.value.op.index[0] = upmenuIndex.value
cardsumit.value.op.index[1] = downmenuIndex.value
//
openValue.value.time = timearr.value[props.liang.index0 + (currentNumber.value * 8)].positioning;
openValue.value.minute = timearr.value[props.liang.index0 + (currentNumber.value * 8)].children[props.liang.index1].typeName
openValue.value.array = bigArray.value[upmenuIndex.value].children[downmenuIndex.value].children
//
openValue.value.array.forEach((element : any) => {
element.relName = element.title + (element.tagName ? element.tagName.split(",").map(item => `${item}`).join("") : "")
})
//
indexsave.value = [props.liang.index0 + (currentNumber.value * 8), props.liang.index1]
clickOp(0, openValue.value.array[0])
}
}
// ()
const rulerMoveEnd = (object : any) => {
if (props.liang.index0 !== 999 && object.cycleType) {
@ -1158,14 +1362,13 @@
}
//
timearr.value[indexsave.value[0]].children[indexsave.value[1]] = param;
isHave()
// let allArray = [];
// timearr.value.forEach((element : any) => {
// element.children.forEach((res : any) => {
// allArray.push(res)
// })
// })
// saveAll()
}
const saveAll = () => {
@ -1295,7 +1498,7 @@
uni.$off('where', whereEvent);
});
defineExpose({
rulerEnd,
// rulerEnd,
rulerMoveEnd,
nextItems,
})

View File

@ -238,7 +238,7 @@
if(isOld.value){
ruler.value?.rulerEnd(savename.value);
}else{
rulernew.value?.rulerEnd(savename.value);
// rulernew.value?.rulerEnd(savename.value);
}
} else if (saveruler.value.typeName) {
if(isOld.value){

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because it is too large Load Diff

View File

@ -3536,11 +3536,13 @@
.move-circle[data-v-293b8ace] {
position: absolute;
bottom: 9.375rem;
left: -6.25rem;
left: 0;
width: 10.9375rem;
height: 10.9375rem;
border-radius: 50%;
background-color: rgba(127, 127, 127, 0.3);
background-image: url('../../static/index/movemode/bj.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
z-index: 9999;
}
.container-img[data-v-293b8ace] {
@ -3598,6 +3600,21 @@
font-size: 1.09375rem;
justify-content: center;
}
.move-circle-bad[data-v-e97a9bd6] {
position: absolute;
bottom: 6.25rem;
right: 1.25rem;
width: 5rem;
height: 5rem;
border-radius: 50%;
background-color: #c2c9d3;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 1.09375rem;
justify-content: center;
}
.delete-circle[data-v-e97a9bd6] {
position: absolute;
bottom: 1.5625rem;
@ -3674,6 +3691,112 @@
margin-top: -0.3125rem;
}
.all-circle[data-v-bcab5993] {
position: absolute;
bottom: 9.375rem;
right: 1.5625rem;
width: 15.625rem;
height: 15.625rem;
}
.move-circle[data-v-bcab5993] {
position: absolute;
bottom: 6.25rem;
right: 1.25rem;
width: 5rem;
height: 5rem;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 1.09375rem;
justify-content: center;
}
.delete-circle[data-v-bcab5993] {
position: absolute;
bottom: 1.5625rem;
right: 4.6875rem;
width: 5rem;
height: 5rem;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 1.09375rem;
justify-content: center;
}
.delete-circle-bad[data-v-bcab5993] {
position: absolute;
bottom: 1.5625rem;
right: 4.6875rem;
width: 5rem;
height: 5rem;
border-radius: 50%;
background-color: #c2c9d3;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 1.09375rem;
justify-content: center;
}
.all-circle[data-v-4595ea88] {
position: absolute;
bottom: 9.375rem;
right: 1.5625rem;
width: 15.625rem;
height: 15.625rem;
}
.move-circle[data-v-4595ea88] {
position: absolute;
bottom: 6.25rem;
right: 1.25rem;
width: 5rem;
height: 5rem;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 1.09375rem;
justify-content: center;
}
.delete-circle[data-v-4595ea88] {
position: absolute;
bottom: 1.5625rem;
right: 4.6875rem;
width: 5rem;
height: 5rem;
border-radius: 50%;
background: linear-gradient(to right, #00c9ff, #0076ff);
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 1.09375rem;
justify-content: center;
}
.delete-circle-bad[data-v-4595ea88] {
position: absolute;
bottom: 1.5625rem;
right: 4.6875rem;
width: 5rem;
height: 5rem;
border-radius: 50%;
background-color: #c2c9d3;
z-index: 9999;
display: flex;
align-items: center;
color: #fff;
font-size: 1.09375rem;
justify-content: center;
}
.super-card[data-v-68a73d3d] {
display: flex;
/* justify-content: center; */
@ -4075,6 +4198,16 @@
z-index: 999;
font-size: 1.5625rem;
}
.title-time-blue[data-v-68a73d3d] {
position: absolute;
top: 0;
left: 0;
z-index: 10;
}
.title-time-blue .title-time-blue-img[data-v-68a73d3d] {
height: 6.53125rem;
width: 7.0625rem;
}
.title-time[data-v-68a73d3d] {
display: flex;
width: 100%;
@ -4082,12 +4215,12 @@
}
.title-time .title-time-time[data-v-68a73d3d] {
font-size: 1rem;
margin-left: 0.625rem;
margin-left: 0.3125rem;
margin-top: 0.375rem;
}
.title-time .title-time-button[data-v-68a73d3d] {
position: absolute;
top: -0.125rem;
top: -0.1875rem;
right: -0.125rem;
width: 2.03125rem;
height: 1.875rem;
@ -4101,7 +4234,7 @@
}
.title-time .title-time-font[data-v-68a73d3d] {
position: absolute;
top: 0.21875rem;
top: 0.09375rem;
right: 0.15625rem;
font-size: 0.625rem;
color: #fff;
@ -4123,13 +4256,13 @@
}
.popup-delete .popup-delete-content[data-v-68a73d3d] {
position: absolute;
right: 16.09375rem;
right: 23.4375rem;
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);
background: url("../../static/index/lightbgcnew.png") center / cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
border: 0.0625rem solid #fff;
/* 使用 screen 混合模式,让图像与白色混合变淡 */
@ -4162,6 +4295,7 @@
justify-content: center;
align-items: center;
color: #fff;
margin: 0 0.3125rem;
}
.popup-delete .popup-delete-content .popup-delete-button .popup-delete-button-right[data-v-68a73d3d] {
background-color: #ced9e8;
@ -4171,7 +4305,7 @@
display: flex;
justify-content: center;
align-items: center;
margin-right: 0.625rem;
margin: 0 0.3125rem;
}
.popup-overlay[data-v-68a73d3d] {
position: fixed;
@ -4332,7 +4466,7 @@
margin-bottom: 1.875rem;
}
.popup-song-father .arrayindex .arrayindex-one[data-v-68a73d3d] {
width: 6.9375rem;
width: 8.90625rem;
height: 3.125rem;
margin-left: 0.625rem;
margin-top: 0.625rem;
@ -4345,7 +4479,7 @@
font-size: 0.90625rem;
}
.popup-song-father .arrayindex .arrayindex-one-target[data-v-68a73d3d] {
width: 6.9375rem;
width: 8.90625rem;
height: 3.125rem;
margin-left: 0.625rem;
margin-top: 0.625rem;
@ -4487,6 +4621,7 @@
margin-left: 0.9375rem;
margin-right: 0.9375rem;
margin-top: 0.625rem;
margin-bottom: 0.9375rem;
}
.month-father .month-one[data-v-68a73d3d] {
width: 2.34375rem;
@ -4522,6 +4657,7 @@
margin-left: 0.9375rem;
margin-right: 0.9375rem;
margin-top: 0.625rem;
margin-bottom: 0.9375rem;
}
.week-father .week-one[data-v-68a73d3d] {
width: 6.25rem;
@ -4556,6 +4692,7 @@
flex-wrap: wrap;
margin-left: 2.34375rem;
margin-right: 0.9375rem;
/* margin-bottom: 30rpx; */
}
.radio-father .radio-circle[data-v-68a73d3d] {
margin-top: 0.0625rem;
@ -4590,6 +4727,12 @@
margin-right: 1.875rem;
font-size: 0.90625rem;
}
.radio-father .radio-font-target[data-v-68a73d3d] {
color: #02abfe;
margin-left: 0.46875rem;
margin-right: 1.875rem;
font-size: 0.90625rem;
}
.title-time-border[data-v-68a73d3d] {
margin-top: 0.125rem;
margin-left: 0.125rem;
@ -4731,7 +4874,7 @@
box-shadow: 0.25rem 0.25rem 0.5rem rgba(123, 97, 255, 0.7);
}
.down-icons[data-v-68a73d3d] {
margin-top: 0.3125rem;
margin-top: 0.53125rem;
width: 100%;
height: 1.875rem;
background-color: #ffd87e;

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB