|
|
@ -557,7 +557,6 @@
|
||||||
const clicktab = (index : number) => {
|
const clicktab = (index : number) => {
|
||||||
if (tabnumber.value !== index) {
|
if (tabnumber.value !== index) {
|
||||||
tabnumber.value = index;
|
tabnumber.value = index;
|
||||||
console.log("???", index)
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
changearray.value = JSON.parse(JSON.stringify(cardarray.value))
|
changearray.value = JSON.parse(JSON.stringify(cardarray.value))
|
||||||
|
|
@ -573,11 +572,6 @@
|
||||||
case 2:
|
case 2:
|
||||||
changearray.value = []
|
changearray.value = []
|
||||||
break
|
break
|
||||||
// cardarray.value.forEach((element:any)=>{
|
|
||||||
// if(!element.cardtype){
|
|
||||||
// changearray.value.push(element)
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
case 3:
|
case 3:
|
||||||
changearray.value = []
|
changearray.value = []
|
||||||
cardarray.value.forEach((element : any) => {
|
cardarray.value.forEach((element : any) => {
|
||||||
|
|
@ -595,7 +589,7 @@
|
||||||
|
|
||||||
const jumptodanyuan = () => {
|
const jumptodanyuan = () => {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pages/Nursing/index"
|
url: "/pages/NursingNew/index"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,14 +86,16 @@
|
||||||
import { ref, onMounted, watch, nextTick } from 'vue'
|
import { ref, onMounted, watch, nextTick } from 'vue'
|
||||||
import { defineProps, defineEmits } from 'vue'
|
import { defineProps, defineEmits } from 'vue'
|
||||||
import { getCardList } from "./api.js"
|
import { getCardList } from "./api.js"
|
||||||
|
// import { throttle } from '@/component/public/throttle.js'
|
||||||
|
|
||||||
|
// const getCardListThrottled = throttle(getCardList(), 1000)
|
||||||
const emit = defineEmits(['nav'])
|
const emit = defineEmits(['nav'])
|
||||||
const props = defineProps({ isShow: { type: Boolean, required: true } })
|
const props = defineProps({ isShow: { type: Boolean, required: true } })
|
||||||
const savevalue = ref("");
|
const savevalue = ref("");
|
||||||
|
|
||||||
const renamenummber = ref(-1)
|
const renamenummber = ref(-1)
|
||||||
const transition = ref(true)
|
const transition = ref(true)
|
||||||
const progress = ref(0)
|
const progress = ref(1)
|
||||||
const scrollTop = ref(0)
|
const scrollTop = ref(0)
|
||||||
const scrollViewRef = ref(null)
|
const scrollViewRef = ref(null)
|
||||||
const rightbutton = ref([
|
const rightbutton = ref([
|
||||||
|
|
@ -104,6 +106,7 @@
|
||||||
])
|
])
|
||||||
const cardarray = ref<Array<{ menu : any; isNew : boolean; nuName : string }>>([])
|
const cardarray = ref<Array<{ menu : any; isNew : boolean; nuName : string }>>([])
|
||||||
const relArray = ref([]);
|
const relArray = ref([]);
|
||||||
|
|
||||||
// 区分首次渲染与动态添加
|
// 区分首次渲染与动态添加
|
||||||
watch(
|
watch(
|
||||||
() => props.isShow,
|
() => props.isShow,
|
||||||
|
|
@ -111,21 +114,15 @@
|
||||||
if (!oldVal && newVal) {
|
if (!oldVal && newVal) {
|
||||||
transition.value = false
|
transition.value = false
|
||||||
setTimeout(() => (transition.value = true), 50)
|
setTimeout(() => (transition.value = true), 50)
|
||||||
|
|
||||||
|
|
||||||
getCardList().then(res => {
|
getCardList().then(res => {
|
||||||
res.result.records.forEach((element : any) => {
|
res.result.records.forEach((element : any) => {
|
||||||
element.menu = JSON.parse(JSON.stringify(rightbutton.value))
|
element.menu = JSON.parse(JSON.stringify(rightbutton.value))
|
||||||
element.isNew = true
|
element.isNew = true
|
||||||
})
|
})
|
||||||
relArray.value = res.result.records
|
relArray.value = res.result.records
|
||||||
|
console.log("????", relArray.value)
|
||||||
again()
|
again()
|
||||||
})
|
})
|
||||||
// suiji()
|
|
||||||
// const timer = setInterval(() => {
|
|
||||||
// progress.value += 0.01
|
|
||||||
// if (progress.value >= 1) clearInterval(timer)
|
|
||||||
// }, 50)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
@ -158,15 +155,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function again() {
|
function again() {
|
||||||
|
if(progress.value == 1){
|
||||||
renamenummber.value = -1
|
renamenummber.value = -1
|
||||||
suiji()
|
suiji()
|
||||||
progress.value = 0
|
progress.value = 0
|
||||||
const timer = setInterval(() => {
|
const timer = setInterval(() => {
|
||||||
progress.value += 0.01
|
progress.value += 0.01
|
||||||
if (progress.value >= 1) clearInterval(timer)
|
if (progress.value >= 1) {
|
||||||
|
progress.value = 1
|
||||||
|
clearInterval(timer)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}, 50)
|
}, 50)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// 监听动画结束,清除标记
|
// 监听动画结束,清除标记
|
||||||
function onAnimEnd(item : { isNew : boolean }) {
|
function onAnimEnd(item : { isNew : boolean }) {
|
||||||
item.isNew = false
|
item.isNew = false
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,266 @@
|
||||||
|
<template>
|
||||||
|
<view class="index-content-other" v-show="isShow" :style="transition?{opacity: `1`}:{opacity: `0`}">
|
||||||
|
<view class="index-content-right">
|
||||||
|
<view style="margin-right: 40rpx;">长春市朝阳区久泰开运养老服务有限公司</view>
|
||||||
|
</view>
|
||||||
|
<view class="array-father">
|
||||||
|
<view v-for="(item,index) in iconsArray.slice(0,3)" :key="index" class="item" @click="jumpToTarget(index)">
|
||||||
|
<view class="left-item">
|
||||||
|
<image class="left-icon" :src="`/static/index/settings/${index}.png`" />
|
||||||
|
<view class="left-font">
|
||||||
|
{{item}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right-item">
|
||||||
|
<image class="right-icon" :src="`/static/index/settings/00.png`" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="array-father" style="margin: 30rpx 0;">
|
||||||
|
<view v-for="(item,index) in iconsArray.slice(3,5)" :key="index" class="item"
|
||||||
|
@click="jumpToTarget(index+3)">
|
||||||
|
<view class="left-item">
|
||||||
|
<image class="left-icon" :src="`/static/index/settings/${index+3}.png`" />
|
||||||
|
<view class="left-font">
|
||||||
|
{{item}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right-item">
|
||||||
|
<image class="right-icon" :src="`/static/index/settings/00.png`" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="array-father">
|
||||||
|
<view v-for="(item,index) in iconsArray.slice(5,8)" :key="index" class="item" @click="jumpToTarget(index+5)">
|
||||||
|
<view class="left-item">
|
||||||
|
<image class="left-icon" :src="`/static/index/settings/${index+5}.png`" />
|
||||||
|
<view class="left-font">
|
||||||
|
{{item}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right-item">
|
||||||
|
<image class="right-icon" :src="`/static/index/settings/00.png`" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="bottom-button" @click="exitshow=true">
|
||||||
|
注销登录
|
||||||
|
</view>
|
||||||
|
<exit :show="exitshow" @close="exitshow=false" />
|
||||||
|
<reset :show="resetshow" @close="resetshow=false" />
|
||||||
|
<zy-update ref="zyupgrade" :noticeflag="true" theme="blue" :h5preview="false" oldversion="1.0.0"
|
||||||
|
:appstoreflag="true" :autocheckupdate="true" @showupdateTips="noNeed" ></zy-update>
|
||||||
|
<!-- 弹出层 -->
|
||||||
|
<view v-if="openany" class="popup-any" :style="animation?{opacity:1}:{opacity:0}">
|
||||||
|
<view class="mask" @click="openany=false"></view>
|
||||||
|
<view class="box-any">
|
||||||
|
<view class="title-left">
|
||||||
|
<image class="back-img" src="/static/left.png" @click="openany=false"></image>
|
||||||
|
<view v-if="!opentype" class="back-font">NU护理单元隐私信息保护政策</view>
|
||||||
|
<view v-if="opentype" class="back-font">NU护理单元用户服务协议</view>
|
||||||
|
</view>
|
||||||
|
<twoseven v-if="!opentype" />
|
||||||
|
<oneseven v-if="opentype" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted, watch, nextTick } from 'vue'
|
||||||
|
import { defineProps, defineEmits } from 'vue'
|
||||||
|
import exit from "@/component/public/exit.vue"
|
||||||
|
import reset from "@/component/public/reset.vue"
|
||||||
|
import ZyUpdate from '@/component/zy-upgrade/zy-upgrade.vue'
|
||||||
|
import oneseven from '@/pages/login/oneseven.vue'
|
||||||
|
import twoseven from '@/pages/login/twoseven.vue'
|
||||||
|
|
||||||
|
const zyupgrade = ref(null);
|
||||||
|
const openany = ref(false);
|
||||||
|
const opentype = ref(false);
|
||||||
|
const exitshow = ref(false);
|
||||||
|
const resetshow = ref(false);
|
||||||
|
const emit = defineEmits(['jump'])
|
||||||
|
const props = defineProps({ isShow: { type: Boolean, required: true } })
|
||||||
|
const iconsArray = ref(["雷达扫描", "扫码添加", "手动录入", "修改密码", "切换机构", "检查更新", "用户协议", "隐私政策"])
|
||||||
|
|
||||||
|
const transition = ref(true)
|
||||||
|
const uuid = ref("")
|
||||||
|
|
||||||
|
// 区分首次渲染与动态添加
|
||||||
|
watch(
|
||||||
|
() => props.isShow,
|
||||||
|
(newVal, oldVal) => {
|
||||||
|
if (!oldVal && newVal) {
|
||||||
|
transition.value = false
|
||||||
|
setTimeout(() => (transition.value = true), 50)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
const animation = ref(false)
|
||||||
|
const jumpToTarget = (index : number) => {
|
||||||
|
switch (index) {
|
||||||
|
case 0:
|
||||||
|
emit("jump", index)
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
emit("jump", index)
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
emit("jump", index)
|
||||||
|
break
|
||||||
|
case 3:
|
||||||
|
resetshow.value = true
|
||||||
|
break
|
||||||
|
case 4:
|
||||||
|
|
||||||
|
break
|
||||||
|
case 5:
|
||||||
|
zyupgrade.value?.check_update()
|
||||||
|
break
|
||||||
|
case 6:
|
||||||
|
openany.value = true;
|
||||||
|
opentype.value = true;
|
||||||
|
animation.value = false;
|
||||||
|
setTimeout(()=>{
|
||||||
|
animation.value = true;
|
||||||
|
},50)
|
||||||
|
break
|
||||||
|
case 7:
|
||||||
|
openany.value = true;
|
||||||
|
opentype.value = false;
|
||||||
|
animation.value = false;
|
||||||
|
setTimeout(()=>{
|
||||||
|
animation.value = true;
|
||||||
|
},50)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const noNeed = () => {
|
||||||
|
if(props.isShow){
|
||||||
|
uni.showToast({
|
||||||
|
title: '已经是最新版了',
|
||||||
|
icon: 'none', // 无图标,仅文字
|
||||||
|
duration: 2000 // 显示时长,单位毫秒
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.index-content-other {
|
||||||
|
width: calc(100% - 170rpx);
|
||||||
|
height: 100%;
|
||||||
|
transition: opacity 1s ease;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.index-content-right {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 50rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
height: 120rpx;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
height: 130rpx;
|
||||||
|
|
||||||
|
.left-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
|
||||||
|
.left-icon {
|
||||||
|
margin: 0 20rpx;
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-item {}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: 50rpx;
|
||||||
|
|
||||||
|
.right-icon {
|
||||||
|
// margin: 0 20rpx;
|
||||||
|
width: 15rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.array-father {
|
||||||
|
background-color: rgba(255, 255, 255, 0.6);
|
||||||
|
width: 98.2%;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-button {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
background-color: rgba(255, 255, 255, 0.6);
|
||||||
|
width: 98.2%;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 30rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
color: #0174D3;
|
||||||
|
}
|
||||||
|
.popup-any {
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
z-index: 999;
|
||||||
|
/* 初始透明度 */
|
||||||
|
opacity: 0;
|
||||||
|
/* 播放动画:名称 fadeIn,时长 0.5s,缓动函数 ease,保持最后状态 */
|
||||||
|
transition: opacity 0.5s ease;
|
||||||
|
background-color: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
.mask {
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-any {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
width: 1000rpx;
|
||||||
|
height: 1500rpx;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 50rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 65rpx 40rpx;
|
||||||
|
}
|
||||||
|
.title-left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.back-img {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-font {
|
||||||
|
font-size: 35rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,121 @@
|
||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<image :src="isError ? defaultImage : links[currentIndex]" :style="{ width: width, height: height }"
|
||||||
|
:mode="objectFit" @error="isError = true" @load="isError = false" />
|
||||||
|
<button v-if="showButton" @click="$emit('update:playing', !playing)">
|
||||||
|
{{ playing ? '停止播放' : '开始播放' }}
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
watch,
|
||||||
|
onUnmounted
|
||||||
|
} from 'vue'
|
||||||
|
|
||||||
|
// 定义组件的 props
|
||||||
|
const props = defineProps({
|
||||||
|
links: {
|
||||||
|
type: Array,
|
||||||
|
default: () => []
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
type: String,
|
||||||
|
default: '60rpx'
|
||||||
|
},
|
||||||
|
height: {
|
||||||
|
type: String,
|
||||||
|
default: '60rpx'
|
||||||
|
},
|
||||||
|
objectFit: {
|
||||||
|
type: String,
|
||||||
|
default: 'aspectFill'
|
||||||
|
},
|
||||||
|
defaultImage: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
interval: {
|
||||||
|
type: Number,
|
||||||
|
default: 80
|
||||||
|
},
|
||||||
|
playing: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
showButton: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
loop: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 定义组件发出的事件
|
||||||
|
const emit = defineEmits(['update:playing'])
|
||||||
|
|
||||||
|
// 组件内部状态
|
||||||
|
const currentIndex = ref(0) // 当前播放的图片索引
|
||||||
|
const isPlaying = ref(false) // 是否正在播放
|
||||||
|
const isError = ref(false) // 当前图片是否加载失败
|
||||||
|
let timer = null // 定时器
|
||||||
|
|
||||||
|
// 开始播放
|
||||||
|
const startPlay = () => {
|
||||||
|
if (isPlaying.value) return
|
||||||
|
isPlaying.value = true
|
||||||
|
timer = setInterval(() => {
|
||||||
|
if (props.loop) {
|
||||||
|
// 循环播放:使用模运算循环索引
|
||||||
|
currentIndex.value = (currentIndex.value + 1) % props.links.length
|
||||||
|
isError.value = false
|
||||||
|
} else {
|
||||||
|
// 非循环播放:到末尾时停止
|
||||||
|
if (currentIndex.value < props.links.length - 1) {
|
||||||
|
currentIndex.value++
|
||||||
|
isError.value = false
|
||||||
|
} else {
|
||||||
|
stopPlay()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, props.interval)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 停止播放
|
||||||
|
const stopPlay = () => {
|
||||||
|
isPlaying.value = false
|
||||||
|
clearInterval(timer)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 监听 playing 属性变化
|
||||||
|
watch(() => props.playing, (val) => {
|
||||||
|
currentIndex.value = 0
|
||||||
|
if (val) {
|
||||||
|
startPlay()
|
||||||
|
} else {
|
||||||
|
stopPlay()
|
||||||
|
setTimeout(() => currentIndex.value = 0, 50)
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 监听 links 数组变化
|
||||||
|
watch(() => props.links, () => {
|
||||||
|
currentIndex.value = 0
|
||||||
|
isError.value = false
|
||||||
|
if (isPlaying.value) {
|
||||||
|
stopPlay()
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
deep: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 组件销毁时清理定时器
|
||||||
|
onUnmounted(() => {
|
||||||
|
stopPlay()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,151 @@
|
||||||
|
<template>
|
||||||
|
<!-- 通过 v-show 控制显隐,并根据 show 添加 is-active 类触发 CSS 过渡 -->
|
||||||
|
<view :class="['neuro-wrapper', donghua ? 'is-active' : '']" v-show="show">
|
||||||
|
<!-- 遮罩层,点击触发关闭 -->
|
||||||
|
<view class="neuro-mask" @click="handleClose"></view>
|
||||||
|
<!-- 拟态框,阻止冒泡点击 -->
|
||||||
|
<view class="neuro-box" @click.stop>
|
||||||
|
|
||||||
|
<view class="button-father">
|
||||||
|
<view class="button-white" @click="handleClose">取消</view>
|
||||||
|
<view class="button" @click="go">确定</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="title">退出登录</view>
|
||||||
|
<view class="card-font">
|
||||||
|
确定要注销155******76账户吗
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
watch
|
||||||
|
} from 'vue'
|
||||||
|
|
||||||
|
// 接收 show 属性并支持 update:show 事件
|
||||||
|
const props = defineProps({
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
||||||
|
// 区分首次渲染与动态添加
|
||||||
|
const donghua = ref(false);
|
||||||
|
watch(
|
||||||
|
() => props.show,
|
||||||
|
(newVal, oldVal) => {
|
||||||
|
if (!oldVal && newVal) {
|
||||||
|
donghua.value = false
|
||||||
|
setTimeout(()=>donghua.value = true,50)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
const emit = defineEmits(["close"]);
|
||||||
|
|
||||||
|
// 关闭方法,通知父组件更新 show
|
||||||
|
function handleClose() {
|
||||||
|
emit('close');
|
||||||
|
}
|
||||||
|
const go = () => {
|
||||||
|
uni.setStorageSync('token', 1);
|
||||||
|
plus.runtime.quit();
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
/* 容器默认隐藏,透明度为 0,不接受点击 */
|
||||||
|
.neuro-wrapper {
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 999;
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 显示时透明度过渡到 1,可接受点击 */
|
||||||
|
.neuro-wrapper.is-active {
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 遮罩层,半透明黑色 */
|
||||||
|
.neuro-mask {
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 拟态框 固定尺寸 + 阴影样式 + 相对定位于 wrapper */
|
||||||
|
.neuro-box {
|
||||||
|
position: relative;
|
||||||
|
width: 600rpx;
|
||||||
|
height: 450rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
// justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background-image: url('https://www.focusnu.com/media/directive/index/whitepeople.png');
|
||||||
|
// background-size: 100% auto;
|
||||||
|
background-position: top center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
z-index: 1;
|
||||||
|
padding: 0 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
width: 47%;
|
||||||
|
background: linear-gradient(to left, #00C9FF, #0076FF);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 25rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-top: 70rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-font {
|
||||||
|
margin-top: 70rpx;
|
||||||
|
width: 600rpx;
|
||||||
|
justify-content: center;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-white {
|
||||||
|
width: 47%;
|
||||||
|
border: 2rpx solid #c3cacd;
|
||||||
|
background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 25rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-father {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 60rpx;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
width: 100%;
|
||||||
|
height: 70rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 50rpx;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,243 @@
|
||||||
|
<template>
|
||||||
|
<!-- 通过 v-show 控制显隐,并根据 show 添加 is-active 类触发 CSS 过渡 -->
|
||||||
|
<view :class="['neuro-wrapper', donghua ? 'is-active' : '']" v-show="show">
|
||||||
|
<!-- 遮罩层,点击触发关闭 -->
|
||||||
|
<view class="neuro-mask" @click="handleClose"></view>
|
||||||
|
<!-- 拟态框,阻止冒泡点击 -->
|
||||||
|
<view class="neuro-box" @click.stop>
|
||||||
|
|
||||||
|
<view class="button-father">
|
||||||
|
<!-- <view class="button-white" @click="handleClose">取消</view> -->
|
||||||
|
<view class="button" @click="go">确定</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="title">修改账号登录密码</view>
|
||||||
|
<view class="password-father" style="margin-top: 50rpx;">
|
||||||
|
<input class="password" :password="false" v-model="form.oldpassword" maxlength="15"
|
||||||
|
placeholder="请输入旧密码" />
|
||||||
|
</view>
|
||||||
|
<view class="password-father">
|
||||||
|
<input class="password" :password="false" v-model="form.password" maxlength="15" placeholder="请输入新密码" />
|
||||||
|
</view>
|
||||||
|
<view class="password-father">
|
||||||
|
<input class="password" :password="false" v-model="form.confirmpassword" maxlength="15"
|
||||||
|
placeholder="请再次输入新密码" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card-font">
|
||||||
|
<!-- 确定要退出155******76账户吗 -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
reactive,
|
||||||
|
watch
|
||||||
|
} from 'vue'
|
||||||
|
import {
|
||||||
|
updatePassword
|
||||||
|
} from '@/pages/Initialization/api.js'
|
||||||
|
|
||||||
|
// 接收 show 属性并支持 update:show 事件
|
||||||
|
const props = defineProps({
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
const form = reactive({
|
||||||
|
username: uni.getStorageSync('username'),
|
||||||
|
oldpassword: "",
|
||||||
|
password: "",
|
||||||
|
confirmpassword: ""
|
||||||
|
})
|
||||||
|
|
||||||
|
// 区分首次渲染与动态添加
|
||||||
|
const donghua = ref(false);
|
||||||
|
watch(
|
||||||
|
() => props.show,
|
||||||
|
(newVal, oldVal) => {
|
||||||
|
if (!oldVal && newVal) {
|
||||||
|
donghua.value = false
|
||||||
|
setTimeout(() => donghua.value = true, 50)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
const emit = defineEmits(["close"]);
|
||||||
|
|
||||||
|
// 关闭方法,通知父组件更新 show
|
||||||
|
function handleClose() {
|
||||||
|
emit('close');
|
||||||
|
}
|
||||||
|
const go = () => {
|
||||||
|
if (!form.username || !form.oldpassword || !form.password || !form.confirmpassword) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请完善信息',
|
||||||
|
icon: 'error', // 无图标,表示普通文本
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (form.password.length < 6 || form.confirmpassword.length < 6) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '密码要多于六位',
|
||||||
|
icon: 'none', // 无图标,表示普通文本
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (form.password !== form.confirmpassword) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '新密码与确认密码不一致',
|
||||||
|
icon: 'none', // 无图标,表示普通文本
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// plus.runtime.quit();
|
||||||
|
updatePassword(form).then(res => {
|
||||||
|
console.log("res", res)
|
||||||
|
if (res.success) {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.message,
|
||||||
|
icon: 'none', // 无图标,表示普通文本
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
// uni.clearStorageSync();
|
||||||
|
setTimeout(() => {
|
||||||
|
// 1. 清除缓存
|
||||||
|
|
||||||
|
uni.setStorageSync('token', 1);
|
||||||
|
// 2. 跳转到登录页(使用 reLaunch 关闭所有页面栈)
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages/login/login' // 请根据你项目的路径修改
|
||||||
|
});
|
||||||
|
}, 1000)
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.message,
|
||||||
|
icon: 'none', // 无图标,表示普通文本
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
/* 容器默认隐藏,透明度为 0,不接受点击 */
|
||||||
|
.neuro-wrapper {
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 999;
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 显示时透明度过渡到 1,可接受点击 */
|
||||||
|
.neuro-wrapper.is-active {
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 遮罩层,半透明黑色 */
|
||||||
|
.neuro-mask {
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 拟态框 固定尺寸 + 阴影样式 + 相对定位于 wrapper */
|
||||||
|
.neuro-box {
|
||||||
|
position: relative;
|
||||||
|
width: 750rpx;
|
||||||
|
height: 700rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
// justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background-image: url('https://www.focusnu.com/media/directive/index/whitepeople.png');
|
||||||
|
// background-size: 100% auto;
|
||||||
|
background-position: top center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
z-index: 1;
|
||||||
|
padding: 0 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
width: 100%;
|
||||||
|
background: linear-gradient(to left, #00C9FF, #0076FF);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 25rpx;
|
||||||
|
border-radius: 35rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-top: 70rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 35rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-font {
|
||||||
|
margin-top: 70rpx;
|
||||||
|
width: 600rpx;
|
||||||
|
justify-content: center;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-white {
|
||||||
|
width: 47%;
|
||||||
|
border: 2rpx solid #c3cacd;
|
||||||
|
background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 25rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-father {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 70rpx;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
width: 100%;
|
||||||
|
height: 80rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 0 110rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.password-father {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
width: 750rpx;
|
||||||
|
padding: 0 120rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
|
||||||
|
.password {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #edf0f9;
|
||||||
|
border-radius: 23rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
padding-left: 20rpx;
|
||||||
|
// margin-left: -20rpx;
|
||||||
|
font-size: 27rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
<image class="right-icons-img-icon"
|
<image class="right-icons-img-icon"
|
||||||
:src="darkFans?`/static/index/undericons/out.png`:`/static/index/undericons/outlight.png`" />
|
:src="darkFans?`/static/index/undericons/out.png`:`/static/index/undericons/outlight.png`" />
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="right-container-title-class-anhei-button" @click="darkFanschange()" v-show="!darkFans">
|
<view class="right-container-title-class-anhei-button" @click="darkFanschange()" v-show="!darkFans">
|
||||||
<text class="right-container-title-class-anhei">
|
<text class="right-container-title-class-anhei">
|
||||||
切换到暗黑模式
|
切换到暗黑模式
|
||||||
|
|
@ -30,6 +31,11 @@
|
||||||
取消暗黑模式
|
取消暗黑模式
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="right-container-title-class-anhei-button" style="background-color: #fff;">
|
||||||
|
<text class="right-container-title-class-anhei" style="color: black;" @click="goToNew" >
|
||||||
|
切换到新版主页
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="right-container-fir">
|
<view class="right-container-fir">
|
||||||
|
|
@ -517,6 +523,12 @@
|
||||||
const secondcurrentIndex = ref<number>(0);
|
const secondcurrentIndex = ref<number>(0);
|
||||||
const thirdcurrentIndex = ref<number>(0);
|
const thirdcurrentIndex = ref<number>(0);
|
||||||
const emit = defineEmits(['darkchange']);
|
const emit = defineEmits(['darkchange']);
|
||||||
|
|
||||||
|
const goToNew = () => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url:'/pages/NursingNew/index'
|
||||||
|
})
|
||||||
|
}
|
||||||
// 暗黑模式改变
|
// 暗黑模式改变
|
||||||
const darkFanschange = () => {
|
const darkFanschange = () => {
|
||||||
emit('darkchange', !props.darkFans);
|
emit('darkchange', !props.darkFans);
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@
|
||||||
<view v-show="showVideo" class="modal" @click="closeVideo">
|
<view v-show="showVideo" class="modal" @click="closeVideo">
|
||||||
<view class="modal-content" @click.stop>
|
<view class="modal-content" @click.stop>
|
||||||
<!-- 视频组件,可替换 src 地址 -->
|
<!-- 视频组件,可替换 src 地址 -->
|
||||||
<video id="myVideo" src="@/static/index/ceshi.mp4" controls style="width:100%;height:100%;"></video>
|
<!-- <video id="myVideo" src="@/static/index/ceshi.mp4" controls style="width:100%;height:100%;"></video> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,8 @@
|
||||||
<view class="title-time" v-if="item1.startTime"
|
<view class="title-time" v-if="item1.startTime"
|
||||||
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove"
|
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove"
|
||||||
style="margin-top: 5rpx;">
|
style="margin-top: 5rpx;">
|
||||||
<view class="title-time-time" style="font-size: 25rpx;margin-top: 20rpx;">
|
<view class="title-time-time"
|
||||||
|
style="font-size: 25rpx;margin-top: 20rpx;">
|
||||||
{{item1.startTime + `-` + item1.endTime}}
|
{{item1.startTime + `-` + item1.endTime}}
|
||||||
</view>
|
</view>
|
||||||
<image class="title-time-button"
|
<image class="title-time-button"
|
||||||
|
|
@ -445,15 +446,16 @@
|
||||||
() => props.isold,
|
() => props.isold,
|
||||||
() => {
|
() => {
|
||||||
if (props.isold) {
|
if (props.isold) {
|
||||||
saveEditIndex.value.index0 = 10;
|
saveEditIndex.value.index0 = 9;
|
||||||
saveEditIndex.value.index1 = 0;
|
saveEditIndex.value.index1 = 0;
|
||||||
|
centerCell();
|
||||||
cardLeft.value = 1;
|
cardLeft.value = 1;
|
||||||
scrollTop.value = 1;
|
scrollTop.value = 1;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
scrollTop.value = 0;
|
scrollTop.value = 0;
|
||||||
cardLeft.value = 704;
|
cardLeft.value = 605;
|
||||||
})
|
|
||||||
|
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
watch(
|
watch(
|
||||||
|
|
@ -463,17 +465,28 @@
|
||||||
})
|
})
|
||||||
watch(
|
watch(
|
||||||
() => props.isshow,
|
() => props.isshow,
|
||||||
() => {
|
(newVal, oldVal) => {
|
||||||
|
// 只有当新旧值不相同时才执行
|
||||||
|
if (newVal !== oldVal) {
|
||||||
bottomisShaking.value = false
|
bottomisShaking.value = false
|
||||||
shakyTable.value = false;
|
shakyTable.value = false
|
||||||
|
if(solveWatch.value){
|
||||||
|
solveWatch.value --
|
||||||
|
}else{
|
||||||
|
saveEditIndex.value.index0 = 9
|
||||||
|
saveEditIndex.value.index1 = 0
|
||||||
|
centerCell();
|
||||||
|
cardLeft.value = 1
|
||||||
|
scrollTop.value = 1
|
||||||
|
|
||||||
cardLeft.value = 1;
|
|
||||||
scrollTop.value = 1;
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
scrollTop.value = 0;
|
scrollTop.value = 0
|
||||||
cardLeft.value = 704;
|
cardLeft.value = 605
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
const bottomItems = ref([
|
const bottomItems = ref([
|
||||||
{
|
{
|
||||||
name: '纸尿裤',
|
name: '纸尿裤',
|
||||||
|
|
@ -584,6 +597,11 @@
|
||||||
const savebottom = ref(3);
|
const savebottom = ref(3);
|
||||||
const isMove = ref(false);
|
const isMove = ref(false);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// getServiceTree().then(res=>{
|
||||||
|
// console.log("res",res)
|
||||||
|
// })
|
||||||
|
})
|
||||||
// 上次点击时间
|
// 上次点击时间
|
||||||
const lastTap = ref(0)
|
const lastTap = ref(0)
|
||||||
// 双击的最大间隔(ms),可根据体验调整
|
// 双击的最大间隔(ms),可根据体验调整
|
||||||
|
|
@ -690,79 +708,36 @@
|
||||||
const selectType = ref(true);
|
const selectType = ref(true);
|
||||||
const deleteButton = ref(false);
|
const deleteButton = ref(false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 给摇杆用的
|
|
||||||
//看完迷糊不,我都迷糊了
|
|
||||||
//0上1右2下3左
|
|
||||||
// songisopen.value是弹窗打没打开
|
|
||||||
// clickstauts.value是弹窗的第几步
|
|
||||||
// selectType.value是选择周和月的状态
|
|
||||||
const movecard = (where : number) => {
|
const movecard = (where : number) => {
|
||||||
isDelete.value = false;
|
isDelete.value = false;
|
||||||
// console.log("?????",leftIn.value,saveleft.value*117)
|
|
||||||
// if (((saveleft.value * 117 - leftIn.value) > 5) || ((leftIn.value - saveleft.value * 117) > 0)) {
|
|
||||||
// cardLeft.value = 1;
|
|
||||||
// nextTick(() => {
|
|
||||||
// cardLeft.value = saveleft.value * 117;
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
// if (((savetop.value * 104.5 - topIn.value) > 5) || ((topIn.value - savetop.value * 104.5) > 0)) {
|
|
||||||
// scrollTop.value = 1;
|
|
||||||
// nextTick(() => {
|
|
||||||
// scrollTop.value = savetop.value * 104.5;
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
switch (where) {
|
switch (where) {
|
||||||
case 0:
|
case 0:
|
||||||
if (saveEditIndex.value.index1) {
|
if (saveEditIndex.value.index1) {
|
||||||
saveEditIndex.value.index1--
|
saveEditIndex.value.index1--
|
||||||
|
centerCell();
|
||||||
}
|
}
|
||||||
// if (saveEditIndex.value.index1 < savetop.value) {
|
|
||||||
// savetop.value = saveEditIndex.value.index1;
|
|
||||||
// savebottom.value = saveEditIndex.value.index1 + 3
|
|
||||||
// scrollTop.value = saveEditIndex.value.index1 * 104.5;
|
|
||||||
// }
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
case 1:
|
case 1:
|
||||||
if (saveEditIndex.value.index0 == 23) {
|
if (saveEditIndex.value.index0 == 23) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
saveEditIndex.value.index0++
|
saveEditIndex.value.index0++
|
||||||
// if (saveEditIndex.value.index0 > saveright.value) {
|
centerCell();
|
||||||
// saveleft.value = saveEditIndex.value.index0 - 5;
|
|
||||||
// saveright.value = saveEditIndex.value.index0
|
|
||||||
// cardLeft.value = saveleft.value * 117;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
case 2:
|
case 2:
|
||||||
if (saveEditIndex.value.index1 == 11) {
|
if (saveEditIndex.value.index1 == 11) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
saveEditIndex.value.index1++
|
saveEditIndex.value.index1++
|
||||||
// if (saveEditIndex.value.index1 > savebottom.value) {
|
centerCell();
|
||||||
// savetop.value = saveEditIndex.value.index1 - 3;
|
|
||||||
// savebottom.value = saveEditIndex.value.index1;
|
|
||||||
// scrollTop.value = savetop.value * 104.5;
|
|
||||||
// }
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
case 3:
|
case 3:
|
||||||
if (saveEditIndex.value.index0 == 0) {
|
if (saveEditIndex.value.index0 == 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
saveEditIndex.value.index0--
|
saveEditIndex.value.index0--
|
||||||
// if (saveEditIndex.value.index0 < saveleft.value) {
|
centerCell();
|
||||||
// saveleft.value = saveEditIndex.value.index0;
|
|
||||||
// saveright.value = saveEditIndex.value.index0 + 5;
|
|
||||||
// cardLeft.value = saveleft.value * 117;
|
|
||||||
// }
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1139,35 +1114,9 @@
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// if (cardsumit.value.op.index[2] === index) {
|
|
||||||
// cardsumit.value.op.index[2] = -1;
|
|
||||||
// cardsumit.value.op.name = ""
|
|
||||||
// openOp.value = -1
|
|
||||||
// } else {
|
|
||||||
// cardsumit.value.op.index[2] = index
|
|
||||||
// cardsumit.value.op.name = item.relName
|
|
||||||
// switch (item.cycleType) {
|
|
||||||
// case `日常护理`:
|
|
||||||
// openOp.value = 0
|
|
||||||
// break;
|
|
||||||
// case `周期护理`:
|
|
||||||
// openOp.value = 1
|
|
||||||
// break;
|
|
||||||
// case `即时护理`:
|
|
||||||
// openOp.value = 2
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// const clickweek = (index : string) => {
|
|
||||||
// cardsumit.value.weekTime = index
|
|
||||||
// }
|
|
||||||
// const clickmonth = (index : string) => {
|
|
||||||
// cardsumit.value.monthTime = index
|
|
||||||
// }
|
|
||||||
const indexsave = ref([-1, -1]);
|
const indexsave = ref([-1, -1]);
|
||||||
// (长按表格后)表格拖动结束
|
// (长按表格后)表格拖动结束
|
||||||
const rulerMoveEnd = (object : any) => {
|
const rulerMoveEnd = (object : any) => {
|
||||||
|
|
@ -1363,7 +1312,11 @@
|
||||||
current: -1,
|
current: -1,
|
||||||
bordershow: true
|
bordershow: true
|
||||||
})
|
})
|
||||||
|
const solveWatch = ref(0)
|
||||||
const whereEvent = (data : any) => {
|
const whereEvent = (data : any) => {
|
||||||
|
saveEditIndex.value.index0 = data.index0;
|
||||||
|
saveEditIndex.value.index1 = data.index1;
|
||||||
|
centerCell();
|
||||||
targetRuler.value.index0 = data.index0;
|
targetRuler.value.index0 = data.index0;
|
||||||
targetRuler.value.index1 = data.index1;
|
targetRuler.value.index1 = data.index1;
|
||||||
saveRulerTime.value.index0 = targetRuler.value.index0;
|
saveRulerTime.value.index0 = targetRuler.value.index0;
|
||||||
|
|
@ -1394,12 +1347,15 @@
|
||||||
onShow(() => {
|
onShow(() => {
|
||||||
bigArray.value = myArray
|
bigArray.value = myArray
|
||||||
downList.value = bigArray.value[0].children
|
downList.value = bigArray.value[0].children
|
||||||
uni.$on('where', whereEvent);
|
uni.$on('where', findback);
|
||||||
console.log("???",saveEditIndex.value)
|
|
||||||
})
|
})
|
||||||
onHide(() => {
|
onHide(() => {
|
||||||
uni.$off('where', whereEvent);
|
uni.$off('where', findback);
|
||||||
});
|
});
|
||||||
|
function findback (data:any){
|
||||||
|
solveWatch.value = 3;
|
||||||
|
whereEvent(data)
|
||||||
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
rulerMoveEnd,
|
rulerMoveEnd,
|
||||||
})
|
})
|
||||||
|
|
@ -1452,12 +1408,6 @@
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
watch(
|
|
||||||
[() => saveEditIndex.value.index0, () => saveEditIndex.value.index1],
|
|
||||||
() => {
|
|
||||||
centerCell();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
const totalColumns = 24; // 总列数
|
const totalColumns = 24; // 总列数
|
||||||
const totalRows = 11; // 总行数
|
const totalRows = 11; // 总行数
|
||||||
|
|
@ -1468,7 +1418,6 @@
|
||||||
// 计算点击格子的中心位置 (rpx)
|
// 计算点击格子的中心位置 (rpx)
|
||||||
const cellCenterX = (saveEditIndex.value.index0 + 0.5) * 201;
|
const cellCenterX = (saveEditIndex.value.index0 + 0.5) * 201;
|
||||||
const cellCenterY = (saveEditIndex.value.index1 - 0.5) * 167;
|
const cellCenterY = (saveEditIndex.value.index1 - 0.5) * 167;
|
||||||
// console.log("!!!!",saveEditIndex.value.index0)
|
|
||||||
// 计算 scrollLeft 和 scrollTop,使格子中心位于可视区域中心
|
// 计算 scrollLeft 和 scrollTop,使格子中心位于可视区域中心
|
||||||
cardLeft.value = cellCenterX - visibleWidth / 2;
|
cardLeft.value = cellCenterX - visibleWidth / 2;
|
||||||
scrollTop.value = cellCenterY - visibleHeight / 2;
|
scrollTop.value = cellCenterY - visibleHeight / 2;
|
||||||
|
|
@ -1481,9 +1430,6 @@
|
||||||
cardLeft.value = Math.max(0, Math.min(cardLeft.value, totalWidth - visibleWidth)) / 2;
|
cardLeft.value = Math.max(0, Math.min(cardLeft.value, totalWidth - visibleWidth)) / 2;
|
||||||
// scrollTop.value = 0
|
// scrollTop.value = 0
|
||||||
scrollTop.value = Math.max(0, Math.min(scrollTop.value, totalHeight - visibleHeight)) / 2;
|
scrollTop.value = Math.max(0, Math.min(scrollTop.value, totalHeight - visibleHeight)) / 2;
|
||||||
|
|
||||||
// console.log("????",cardLeft.value,scrollTop.value)
|
|
||||||
// console.log("????",scrollLeft.value,scrollTop.value,rpx2px)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,8 @@
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
console.log("?????",res.data.code)
|
// console.log("?????",res.data.code)
|
||||||
|
// this.$emit('chuandinew',this.updated2version)
|
||||||
if(res.statusCode===404){
|
if(res.statusCode===404){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -154,10 +155,10 @@
|
||||||
that.size = res.data.data.size;
|
that.size = res.data.data.size;
|
||||||
that.getnewbanben();
|
that.getnewbanben();
|
||||||
}else{
|
}else{
|
||||||
// if(that.noticeflag){
|
if(that.noticeflag){
|
||||||
// //通知父组件,当前版为最新版本
|
//通知父组件,当前版为最新版本
|
||||||
// that.$emit("showupdateTips",0)
|
that.$emit("showupdateTips",0)
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
|
|
|
||||||
11
main.js
|
|
@ -15,13 +15,18 @@ app.$mount()
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
// #ifdef VUE3
|
// #ifdef VUE3
|
||||||
import { createSSRApp } from 'vue'
|
import {
|
||||||
|
createSSRApp
|
||||||
|
} from 'vue'
|
||||||
|
import donghua from '@/component/public/donghua.vue'
|
||||||
export function createApp() {
|
export function createApp() {
|
||||||
const app = createSSRApp(App)
|
const app = createSSRApp(App)
|
||||||
|
|
||||||
// 使用 uView UI
|
// 使用 uView UI
|
||||||
app.use(uView)
|
app.use(uView)
|
||||||
|
app.component('donghua', donghua)
|
||||||
return { app }
|
return {
|
||||||
|
app
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// #endif
|
// #endif
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
"name" : "护理单元",
|
"name" : "护理单元",
|
||||||
"appid" : "__UNI__FB2D473",
|
"appid" : "__UNI__FB2D473",
|
||||||
"description" : "护理单元",
|
"description" : "护理单元",
|
||||||
"versionName" : "1.3.0",
|
"versionName" : "1.3.4",
|
||||||
"versionCode" : 130,
|
"versionCode" : 134,
|
||||||
"transformPx" : false,
|
"transformPx" : false,
|
||||||
/* 5+App特有相关 */
|
/* 5+App特有相关 */
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,13 @@
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/NursingNew/index",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
// 仓储
|
// 仓储
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
// 引入 request 文件
|
||||||
|
import request from '@/request/index.js'
|
||||||
|
|
||||||
|
// 以下 api 为博主项目示例,实际与项目相匹配
|
||||||
|
|
||||||
|
//修改密码
|
||||||
|
export const updatePassword = (form) => {
|
||||||
|
return request({
|
||||||
|
url: `${uni.getStorageSync('serverUrl')}/sys/user/updatePassword`,
|
||||||
|
method: 'put',
|
||||||
|
data: {
|
||||||
|
username: form.username,
|
||||||
|
oldpassword: form.oldpassword,
|
||||||
|
password: form.password,
|
||||||
|
confirmpassword: form.confirmpassword,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -1,39 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<view :class="darkFans?`darkbackgroundContainer`:`backgroundContainer`">
|
<view :class="darkFans?`darkbackgroundContainer`:`backgroundContainer`">
|
||||||
<!-- <view class="index-title">
|
|
||||||
<view class="index-title-left">
|
|
||||||
<image class="index-title-left-img" src="/static/index/customer.png" />
|
|
||||||
<view class="index-title-left-font">
|
|
||||||
{{name}}
|
|
||||||
</view>
|
|
||||||
<view class="index-title-left-wel">
|
|
||||||
长春市朝阳区久泰开运养老服务有限公司
|
|
||||||
</view>
|
|
||||||
<view class="index-title-left-weight">
|
|
||||||
{{name}}
|
|
||||||
</view>
|
|
||||||
<view class="">
|
|
||||||
长春市朝阳区久泰开运养老服务有限公司
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="index-title-right">
|
|
||||||
长春市朝阳区久泰开运养老服务有限公司
|
|
||||||
<view v-for="(item,index) in ballList" :key="index">
|
|
||||||
<view class="ball-bgc" @click="jumpToIndex(index)">
|
|
||||||
<image class="ball-img" :src="item.url" />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view v-for="(item,index) in iconTop" :key="index">
|
|
||||||
<view class="top-card" @click="clicktopright(index)">
|
|
||||||
<image class="top-card-img" :src="item.url" />
|
|
||||||
<view class="top-card-font">
|
|
||||||
{{ item.name }}
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
<view class="index-content">
|
<view class="index-content">
|
||||||
<view class="index-content-leftMenus">
|
<view class="index-content-leftMenus">
|
||||||
<view class="index-title-title">
|
<view class="index-title-title">
|
||||||
|
|
@ -60,13 +27,12 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 首页 -->
|
<!-- 首页 -->
|
||||||
|
|
||||||
<fuwu :isShow="menuIndex == 0" />
|
<fuwu :isShow="menuIndex == 0" />
|
||||||
|
<settings :isShow="menuIndex == 5" @jump="jumpToIndex" />
|
||||||
<storeroomindex :isShow="menuIndex == -1" @nav="navMenu" />
|
<storeroomindex :isShow="menuIndex == -1" @nav="navMenu" />
|
||||||
<leidaindex :isShow="menuIndex==-2" />
|
<leidaindex :isShow="menuIndex==-2" />
|
||||||
<saoma :isShow="menuIndex==-3" />
|
<saoma :isShow="menuIndex==-3" />
|
||||||
<put :isShow="menuIndex==-4" />
|
<put :isShow="menuIndex==-4" />
|
||||||
<!-- <storeroomorders :isShow="menuIndex===1" /> -->
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -77,12 +43,12 @@
|
||||||
import { onLoad } from '@dcloudio/uni-app';
|
import { onLoad } from '@dcloudio/uni-app';
|
||||||
// 首页
|
// 首页
|
||||||
import fuwu from "@/component/Initialization/fuwu.vue";
|
import fuwu from "@/component/Initialization/fuwu.vue";
|
||||||
|
//设置
|
||||||
|
import settings from "@/component/Initialization/settings.vue";
|
||||||
import storeroomindex from "@/component/Initialization/fuwu.vue";
|
import storeroomindex from "@/component/Initialization/fuwu.vue";
|
||||||
import leidaindex from "@/component/Initialization/leida.vue";
|
import leidaindex from "@/component/Initialization/leida.vue";
|
||||||
import saoma from "@/component/Initialization/saoma.vue";
|
import saoma from "@/component/Initialization/saoma.vue";
|
||||||
import put from "@/component/Initialization/input.vue";
|
import put from "@/component/Initialization/input.vue";
|
||||||
// 订单页
|
|
||||||
// import storeroomorders from "@/component/storeroom/orders.vue"
|
|
||||||
// 暗黑模式
|
// 暗黑模式
|
||||||
const darkFans = ref(false);
|
const darkFans = ref(false);
|
||||||
const menuIndex = ref(0);
|
const menuIndex = ref(0);
|
||||||
|
|
@ -120,10 +86,6 @@
|
||||||
}
|
}
|
||||||
// 变更菜单
|
// 变更菜单
|
||||||
const changeMenu = (index : number) => {
|
const changeMenu = (index : number) => {
|
||||||
// if (index === 5) {
|
|
||||||
// // uni.navigateBack()
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
menuIndex.value = index;
|
menuIndex.value = index;
|
||||||
};
|
};
|
||||||
const clicktopright = (index : number) => {
|
const clicktopright = (index : number) => {
|
||||||
|
|
|
||||||
|
|
@ -54,9 +54,9 @@
|
||||||
:darkFans="darkFans" v-show="menuIndex==1&&!isOld" @darkchange="darkchange" @savename="openname"
|
:darkFans="darkFans" v-show="menuIndex==1&&!isOld" @darkchange="darkchange" @savename="openname"
|
||||||
@saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" @changeold="isOldchange" />
|
@saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" @changeold="isOldchange" />
|
||||||
<!-- 新表格 -->
|
<!-- 新表格 -->
|
||||||
<specialruler ref="rulernew" :isold="isOld===1" :liang="indexNumber" :isshow="menuIndexshowsecond" :canmove="canmove"
|
<!-- <specialruler ref="rulernew" :isold="isOld===1" :liang="indexNumber" :isshow="menuIndexshowsecond" :canmove="canmove"
|
||||||
:darkFans="darkFans" v-show="menuIndex==1&&isOld===1" @darkchange="darkchange" @savename="openname"
|
:darkFans="darkFans" v-show="menuIndex==1&&isOld===1" @darkchange="darkchange" @savename="openname"
|
||||||
@saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" @changeold="isOldchange" />
|
@saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" @changeold="isOldchange" /> -->
|
||||||
<!-- 新表格 -->
|
<!-- 新表格 -->
|
||||||
<rightItemssecondrelnew ref="rulernew" :isold="isOld===2" :liang="indexNumber" :isshow="menuIndexshowsecond" :canmove="canmove"
|
<rightItemssecondrelnew ref="rulernew" :isold="isOld===2" :liang="indexNumber" :isshow="menuIndexshowsecond" :canmove="canmove"
|
||||||
:darkFans="darkFans" v-show="menuIndex==1&&isOld===2" @darkchange="darkchange" @savename="openname"
|
:darkFans="darkFans" v-show="menuIndex==1&&isOld===2" @darkchange="darkchange" @savename="openname"
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
import type { Link } from "./index";
|
import type { Link } from "./index";
|
||||||
import rightItemsfirst from "../../component/rightItemsindex/index.vue"
|
import rightItemsfirst from "../../component/rightItemsindex/index.vue"
|
||||||
import rightItemssecond from "../../component/rightItemssecond/index.vue"
|
import rightItemssecond from "../../component/rightItemssecond/index.vue"
|
||||||
import specialruler from "../../component/specialruler/index.vue"
|
// import specialruler from "../../component/specialruler/index.vue"
|
||||||
import rightItemssecondrelnew from "../../component/rightItemssecondrelnew/index.vue"
|
import rightItemssecondrelnew from "../../component/rightItemssecondrelnew/index.vue"
|
||||||
import { onShow } from '@dcloudio/uni-app';
|
import { onShow } from '@dcloudio/uni-app';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,773 @@
|
||||||
|
<template>
|
||||||
|
<view class="index-content-other" v-show="isShow" :style="transition?{opacity: `1`}:{opacity: `0`}">
|
||||||
|
<view class="right-container-title-nav">
|
||||||
|
<text style="margin-left: 30rpx;">
|
||||||
|
NUID:2508000001
|
||||||
|
</text>
|
||||||
|
<text class="new-weight">
|
||||||
|
护理单元01
|
||||||
|
</text>
|
||||||
|
<view class="right-icons">
|
||||||
|
<view class="right-container-tem">
|
||||||
|
<image class="right-container-tem-img" src="/static/index/newindex/wendu/0.png" />
|
||||||
|
<text class="right-container-tem-text">23°C</text>
|
||||||
|
<image class="right-container-tem-img" src="/static/index/newindex/wendu/1.png" />
|
||||||
|
<text class="right-container-tem-text">39%</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<image class="right-icons-img" :src="`/static/index/undericons/man.png`" />
|
||||||
|
<view>{{name}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="scroll-vi">
|
||||||
|
<view class="zhezhao-left"></view>
|
||||||
|
<view class="zhezhao-right"></view>
|
||||||
|
<scroll-view scroll-x="true" style="width: 100%;height: 100%;">
|
||||||
|
<view style="display: flex;align-items: center;">
|
||||||
|
<view style="width: 100rpx;">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view v-for="(item,index) in typeArray" :key="index" class="menu" @click="typeNow=index;">
|
||||||
|
|
||||||
|
<donghua :links="item.url" :playing="typeNow===index" />
|
||||||
|
<text class="menu-font" :class="{ zoom: typeNow===index }"
|
||||||
|
:style="typeNow===index?{color:`#008FF5`}:{}">
|
||||||
|
{{item.name}}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
<view style="width: 100rpx;">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<view class="photo-father">
|
||||||
|
<view class="juzhong" style="margin-left: -50rpx;">
|
||||||
|
<donghua :width="`1500rpx`" :height="`1000rpx`" :links="blueArray" :playing="photoplay" :loop="true"
|
||||||
|
:interval="120" />
|
||||||
|
</view>
|
||||||
|
<view class="juzhong" style="z-index: 2;margin-top: 120rpx;">
|
||||||
|
<donghua :width="`800rpx`" :height="`500rpx`" :links="bluesmallArray" :playing="photoplay" :loop="true"
|
||||||
|
:interval="120" />
|
||||||
|
</view>
|
||||||
|
<view class="weight-time">
|
||||||
|
10:00 - 10:10
|
||||||
|
<view class="pao-father">
|
||||||
|
<image class="pao-img" :src="`/static/index/newindex/states/pao.png`" />
|
||||||
|
<view style="z-index: 1;">
|
||||||
|
待执行
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<image class="big-img" :src="`/static/index/newindex/wendu/2.png`" />
|
||||||
|
<view style="display: flex;align-items: center;margin-top: 5rpx;">
|
||||||
|
<view class="server-name">
|
||||||
|
一级压疮防护
|
||||||
|
</view>
|
||||||
|
<!-- <view class="server-bgc">
|
||||||
|
<image class="bgc-img" :src="`/static/index/newindex/wendu/bgc.png`" />
|
||||||
|
<view class="bgc-font">
|
||||||
|
日常防护
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
<view style="display: flex;align-items: center;margin-top: 40rpx;">
|
||||||
|
<image class="down-img" :src="`/static/index/newindex/states/left.png`" />
|
||||||
|
<view v-for="(item,index) in downStates" :key="index" class="states-father">
|
||||||
|
<image class="icon-img" :src="item.url" />
|
||||||
|
<view style="margin-top: 15rpx;margin-left: 10rpx;">
|
||||||
|
{{item.name}}
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<image class="down-img" :src="`/static/index/newindex/states/right.png`" />
|
||||||
|
</view>
|
||||||
|
<view style="display: flex;margin-top: 60rpx;">
|
||||||
|
<view class="start-button">
|
||||||
|
开始服务
|
||||||
|
</view>
|
||||||
|
<view class="end-button">
|
||||||
|
结束服务
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <view class="abs-time">
|
||||||
|
<view class="big-time">
|
||||||
|
{{currentTime}}
|
||||||
|
</view>
|
||||||
|
<view class="date">
|
||||||
|
<view class="">
|
||||||
|
{{fullDate}}
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
{{weekDay}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right-container-tem">
|
||||||
|
<image class="right-container-tem-img" src="/static/index/newindex/wendu/0.png" />
|
||||||
|
<text class="right-container-tem-text">23°C</text>
|
||||||
|
<image class="right-container-tem-img" src="/static/index/newindex/wendu/1.png" />
|
||||||
|
<text class="right-container-tem-text">39%</text>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<view class="left-menu">
|
||||||
|
<view v-for="(item,index) in leftArray" :key="index" class="left-ball">
|
||||||
|
<image class="left-menu-img" :src="item" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right-menu">
|
||||||
|
<view class="zhezhao-top" @click="scrollTop -= 115"></view>
|
||||||
|
<view class="zhezhao-bottom" @click="scrollTop += 115"></view>
|
||||||
|
<image class="top-img" :src="`/static/index/newindex/rightmenu/top.png`" @click="scrollTop>0? scrollTop -= 115:scrollTop=0" />
|
||||||
|
<scroll-view scroll-y="true" class="right-scroll" :scroll-top="scrollTop" @scroll="onScroll">
|
||||||
|
<view style="height: 30rpx;">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view v-for="(item,index) in rightMenu" class="white-circle">
|
||||||
|
<image class="right-menu-img" :src="item.url" />
|
||||||
|
<view class="right-menu-name">
|
||||||
|
{{ item.name }}
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view style="height: 30rpx;">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
<image class="top-img" :src="`/static/index/newindex/rightmenu/bottom.png`" @click="scrollTop > (55* rightMenu.length) ? scrollTop = (55* rightMenu.length) : scrollTop += 115 "/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted, onBeforeUnmount, computed, nextTick, defineProps, watch } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
isShow: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const typeNow = ref(-1);
|
||||||
|
const photoplay = ref(false)
|
||||||
|
const downArray = ref()
|
||||||
|
const scrollTop = ref(0);
|
||||||
|
function onScroll(e) {
|
||||||
|
// e.detail.scrollTop 就是当前滚动距离
|
||||||
|
scrollTop.value = e.detail.scrollTop
|
||||||
|
}
|
||||||
|
// 通用的生成函数
|
||||||
|
function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
|
||||||
|
return Array.from({ length: count }, (_, i) => {
|
||||||
|
const idx = pad
|
||||||
|
? String(i + startIndex).padStart(2, '0')
|
||||||
|
: i + startIndex
|
||||||
|
return `${base}/${prefix}${idx}.${ext}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const rightMenu = ref([
|
||||||
|
{
|
||||||
|
url: "/static/index/newindex/rightmenu/0.png",
|
||||||
|
name: '重点追踪'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: "/static/index/newindex/rightmenu/1.png",
|
||||||
|
name: '转单执行'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: "/static/index/newindex/rightmenu/2.png",
|
||||||
|
name: '协助执行'
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// url: "/static/index/newindex/rightmenu/0.png",
|
||||||
|
// name: '重点追踪'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// url: "/static/index/newindex/rightmenu/1.png",
|
||||||
|
// name: '转单执行'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// url: "/static/index/newindex/rightmenu/2.png",
|
||||||
|
// name: '协助执行'
|
||||||
|
// },
|
||||||
|
])
|
||||||
|
const downStates = ref([
|
||||||
|
{
|
||||||
|
url: "/static/index/newindex/states/0.png",
|
||||||
|
name: '狂躁'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: "/static/index/newindex/states/1.png",
|
||||||
|
name: '易怒'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: "/static/index/newindex/states/2.png",
|
||||||
|
name: '大体重'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: "/static/index/newindex/states/3.png",
|
||||||
|
name: '四肢'
|
||||||
|
},
|
||||||
|
])
|
||||||
|
const leftArray = ref(genPaths(
|
||||||
|
'/static/index/newindex/leftmenu',
|
||||||
|
'',
|
||||||
|
3, // 张数
|
||||||
|
'png',
|
||||||
|
0, // 起始索引
|
||||||
|
false // 不补零
|
||||||
|
))
|
||||||
|
const huliArray = ref(genPaths(
|
||||||
|
'/static/index/newindex/huli',
|
||||||
|
'care',
|
||||||
|
9, // 张数
|
||||||
|
'png',
|
||||||
|
0, // 起始索引
|
||||||
|
false // 不补零
|
||||||
|
))
|
||||||
|
const base = genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'curve_',
|
||||||
|
9,
|
||||||
|
'png',
|
||||||
|
1,
|
||||||
|
false
|
||||||
|
)
|
||||||
|
const blueArray = ref([
|
||||||
|
...base,
|
||||||
|
...[...base].reverse() // 先拷贝一份再反转,避免修改原 base
|
||||||
|
])
|
||||||
|
const basesmall = genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'breathe_',
|
||||||
|
9,
|
||||||
|
'png',
|
||||||
|
1,
|
||||||
|
false
|
||||||
|
)
|
||||||
|
const bluesmallArray = ref([
|
||||||
|
...basesmall,
|
||||||
|
...[...basesmall].reverse() // 先拷贝一份再反转,避免修改原 base
|
||||||
|
])
|
||||||
|
const typeArray = ref([
|
||||||
|
{
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/huli',
|
||||||
|
'care',
|
||||||
|
8, // 张数
|
||||||
|
'png',
|
||||||
|
0, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
), name: '护理类'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/yiliao',
|
||||||
|
'health_',
|
||||||
|
9, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
), name: '医疗类'
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/kufang',
|
||||||
|
'storeroom_',
|
||||||
|
11, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
), name: '库房类'
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/baojie',
|
||||||
|
'clean_',
|
||||||
|
12, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
), name: '保洁类'
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/xiaoxi',
|
||||||
|
'wash_',
|
||||||
|
14, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
), name: '消洗类'
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/kangfu',
|
||||||
|
'recovery_',
|
||||||
|
6, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
), name: '康复类'
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
])
|
||||||
|
|
||||||
|
// 使用watch监听isShow变化
|
||||||
|
const transition = ref(true);
|
||||||
|
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.isShow,
|
||||||
|
(newVal, oldVal) => {
|
||||||
|
// 当旧值为false,新值为true时延迟0.2秒调用方法
|
||||||
|
if (!oldVal && newVal) {
|
||||||
|
transition.value = false;
|
||||||
|
// photoplay.value = false;
|
||||||
|
setTimeout(() => {
|
||||||
|
transition.value = true;
|
||||||
|
// photoplay.value = true;
|
||||||
|
}, 50)
|
||||||
|
} else {
|
||||||
|
// photoplay.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
const name = ref("");
|
||||||
|
|
||||||
|
// 定义响应式数据现在时间
|
||||||
|
// const currentTime = ref('');
|
||||||
|
// const fullDate = ref('');
|
||||||
|
// const weekDay = ref('');
|
||||||
|
// let timerId = null;
|
||||||
|
// // 更新时间、日期和星期的方法
|
||||||
|
// const updateTime = () => {
|
||||||
|
// const now = new Date();
|
||||||
|
|
||||||
|
// // 获取当前时间的时分
|
||||||
|
// const hours = now.getHours().toString().padStart(2, '0');
|
||||||
|
// const minutes = now.getMinutes().toString().padStart(2, '0');
|
||||||
|
// currentTime.value = `${hours}:${minutes}`;
|
||||||
|
|
||||||
|
// // 获取完整的日期(年/月/日)
|
||||||
|
// const year = now.getFullYear();
|
||||||
|
// const month = (now.getMonth() + 1).toString().padStart(2, '0');
|
||||||
|
// const day = now.getDate().toString().padStart(2, '0');
|
||||||
|
// fullDate.value = `${month}-${day}`;
|
||||||
|
|
||||||
|
// // 获取星期几
|
||||||
|
// const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
|
||||||
|
// const week = weekDays[now.getDay()];
|
||||||
|
// weekDay.value = week;
|
||||||
|
// };
|
||||||
|
onMounted(() => {
|
||||||
|
name.value = uni.getStorageSync('realname')
|
||||||
|
typeNow.value = 0;
|
||||||
|
// timerId = updateTime();
|
||||||
|
// // 每秒更新一次时间
|
||||||
|
// setInterval(updateTime, 1000);
|
||||||
|
photoplay.value = true;
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.index-content-other {
|
||||||
|
width: calc(100% - 310rpx);
|
||||||
|
height: 100%;
|
||||||
|
transition: opacity 1s ease;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.abs-time {
|
||||||
|
position: absolute;
|
||||||
|
right: 20rpx;
|
||||||
|
top: 150rpx;
|
||||||
|
// width: 300rpx;
|
||||||
|
|
||||||
|
.big-time {
|
||||||
|
font-size: 90rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
width: 100%;
|
||||||
|
justify-content: center;
|
||||||
|
// padding: 0 40rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-container-title-nav {
|
||||||
|
margin-top: 60rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 60rpx;
|
||||||
|
position: relative;
|
||||||
|
font-size: 28rpx;
|
||||||
|
|
||||||
|
.new-weight {
|
||||||
|
margin-left: 30rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-icons {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
// transform: translateY(-50%);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 60rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-icons-img {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-vi {
|
||||||
|
height: 100rpx;
|
||||||
|
width: 95%;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 80rpx;
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
flex: 0 0 auto; // 👈 关键点
|
||||||
|
height: 100rpx;
|
||||||
|
width: 220rpx;
|
||||||
|
border-radius: 50rpx;
|
||||||
|
// margin: 45rpx auto;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding-top: 9rpx;
|
||||||
|
|
||||||
|
.menu-img {
|
||||||
|
width: 55rpx;
|
||||||
|
height: 55rpx;
|
||||||
|
margin-right: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-font {
|
||||||
|
margin-top: 18rpx;
|
||||||
|
font-size: 25rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-container-tem {
|
||||||
|
display: flex;
|
||||||
|
// justify-content: space-around;
|
||||||
|
// margin-top: 30rpx;
|
||||||
|
// margin-bottom: 20rpx;
|
||||||
|
|
||||||
|
.right-container-tem-text {
|
||||||
|
font-size: 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.right-container-tem-img {
|
||||||
|
width: 38rpx;
|
||||||
|
height: 38rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.photo-father {
|
||||||
|
width:100%;
|
||||||
|
height: 1200rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
position: relative;
|
||||||
|
margin-top: 0rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.juzhong {
|
||||||
|
position: absolute;
|
||||||
|
top: 0%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -10%);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.weight-time {
|
||||||
|
font-weight: 800;
|
||||||
|
font-size: 100rpx;
|
||||||
|
margin-bottom: 0rpx;
|
||||||
|
position: relative;
|
||||||
|
margin-left: -50rpx;
|
||||||
|
// z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.big-img {
|
||||||
|
width: 1000rpx;
|
||||||
|
height: 700rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.server-name {
|
||||||
|
font-size: 45rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.server-bgc {
|
||||||
|
width: 160rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgc-img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgc-font {
|
||||||
|
color: #fff;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.down-img {
|
||||||
|
width: 35rpx;
|
||||||
|
height: 35rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.states-father {
|
||||||
|
display: flex;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-img {
|
||||||
|
width: 55rpx;
|
||||||
|
height: 55rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.start-button {
|
||||||
|
width: 240rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
background: linear-gradient(to bottom, #009DEF, #0076FF);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 30rpx;
|
||||||
|
margin-right: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.end-button {
|
||||||
|
width: 240rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
background: linear-gradient(to bottom, #FFFFFF, #C8D0D9);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
// color: #fff;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pao-father {
|
||||||
|
position: absolute;
|
||||||
|
top: 25rpx;
|
||||||
|
right: -110rpx;
|
||||||
|
font-size: 22rpx;
|
||||||
|
width: 100rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
color: #FFFFFF;
|
||||||
|
|
||||||
|
.pao-img {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-menu {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 150rpx;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.zoom {
|
||||||
|
transform: scale(1.2);
|
||||||
|
transform-origin: bottom left;
|
||||||
|
transition: transform 1s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-ball {
|
||||||
|
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin: 30rpx 0;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
.left-menu-img {
|
||||||
|
width: 50rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-menu {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
right: 150rpx;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
width: 140rpx;
|
||||||
|
|
||||||
|
.top-img {
|
||||||
|
width: 140rpx;
|
||||||
|
height: 110rpx;
|
||||||
|
padding: 0 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
// .top-img ::before {
|
||||||
|
// content: "";
|
||||||
|
// position: absolute;
|
||||||
|
// top: 0;
|
||||||
|
// left: 0;
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
// background: linear-gradient(to bottom, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
|
// filter: blur(10px);
|
||||||
|
// /* 模糊强度 */
|
||||||
|
// z-index: 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
.right-scroll {
|
||||||
|
width: 100%;
|
||||||
|
height: 750rpx;
|
||||||
|
// background-color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-circle {
|
||||||
|
width: 80%;
|
||||||
|
height: 200rpx;
|
||||||
|
margin: 20rpx auto;
|
||||||
|
border-radius: 60rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.right-menu-img {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-menu-name {
|
||||||
|
width: 80rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.zhezhao-top {
|
||||||
|
position: absolute;
|
||||||
|
top: 105rpx;
|
||||||
|
left: 0%;
|
||||||
|
width: 120%;
|
||||||
|
height: 120rpx;
|
||||||
|
background: linear-gradient(to bottom,
|
||||||
|
rgba(239, 240, 244, 1) 0%,
|
||||||
|
/* #eff0f4 全不透明 */
|
||||||
|
rgba(239, 240, 244, 0) 100%
|
||||||
|
/* #eff0f4 完全透明 */
|
||||||
|
);
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
.zhezhao-bottom {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 105rpx;
|
||||||
|
left: 0%;
|
||||||
|
width: 120%;
|
||||||
|
height: 120rpx;
|
||||||
|
background: linear-gradient(to top,
|
||||||
|
rgba(239, 240, 244, 1) 0%,
|
||||||
|
/* #eff0f4 全不透明 */
|
||||||
|
rgba(239, 240, 244, 0) 100%
|
||||||
|
/* #eff0f4 完全透明 */
|
||||||
|
);
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
.zhezhao-left{
|
||||||
|
position: absolute;
|
||||||
|
top: 0rpx;
|
||||||
|
left: 0%;
|
||||||
|
height: 100%;
|
||||||
|
width: 120rpx;
|
||||||
|
background: linear-gradient(to right,
|
||||||
|
rgba(239, 240, 244, 1) 0%,
|
||||||
|
/* #eff0f4 全不透明 */
|
||||||
|
rgba(239, 240, 244, 0) 100%
|
||||||
|
/* #eff0f4 完全透明 */
|
||||||
|
);
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
.zhezhao-right{
|
||||||
|
position: absolute;
|
||||||
|
top: 0rpx;
|
||||||
|
right: 0%;
|
||||||
|
height: 100%;
|
||||||
|
width: 120rpx;
|
||||||
|
background: linear-gradient(to left,
|
||||||
|
rgba(239, 240, 244, 1) 0%,
|
||||||
|
/* #eff0f4 全不透明 */
|
||||||
|
rgba(239, 240, 244, 0) 100%
|
||||||
|
/* #eff0f4 完全透明 */
|
||||||
|
);
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
/* justify-content: center; */
|
/* justify-content: center; */
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 400rpx);
|
/* height: calc(100% - 400rpx); */
|
||||||
|
|
||||||
.scroll-x {
|
.scroll-x {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
@ -67,7 +67,7 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0rpx;
|
top: 0rpx;
|
||||||
right: 0rpx;
|
right: 0rpx;
|
||||||
width: 50rpx;
|
width: 55rpx;
|
||||||
height: 45rpx;
|
height: 45rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -454,19 +454,19 @@
|
||||||
|
|
||||||
.super-card-container {
|
.super-card-container {
|
||||||
/* 设置背景图和白色背景 */
|
/* 设置背景图和白色背景 */
|
||||||
background: url("/static/index/whitemountain.png") center/cover, rgba(255, 255, 255, 0.5);
|
/* background: url("/static/index/whitemountain.png") center/cover, rgba(255, 255, 255, 0.5); */
|
||||||
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
/* 使用 screen 混合模式,让图像与白色混合变淡 */
|
||||||
background-blend-mode: screen;
|
background-blend-mode: screen;
|
||||||
isolation: isolate;
|
isolation: isolate;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-left: 120rpx;
|
margin-left: 60rpx;
|
||||||
width: 1405rpx;
|
width: 1405rpx;
|
||||||
height: 1190rpx;
|
height: 1190rpx;
|
||||||
/* border-top-right-radius: 20rpx;
|
/* border-top-right-radius: 20rpx;
|
||||||
border-bottom-right-radius: 20rpx; */
|
border-bottom-right-radius: 20rpx; */
|
||||||
border: 2rpx solid #fff;
|
/* border: 2rpx solid #fff; */
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
box-shadow: 10rpx 10rpx 20px rgba(0, 0, 0, 0.1);
|
/* box-shadow: 10rpx 10rpx 20px rgba(0, 0, 0, 0.1); */
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -476,9 +476,9 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
// background-color: rgb(233, 239, 257);
|
// background-color: rgb(233, 239, 257);
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
width: 234rpx;
|
width: 201rpx;
|
||||||
border-right: 1rpx solid transparent;
|
border-right: 1rpx solid transparent;
|
||||||
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
/* border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1; */
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
|
|
@ -487,7 +487,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 234rpx;
|
width: 201rpx;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
border-right: 1rpx solid transparent;
|
border-right: 1rpx solid transparent;
|
||||||
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
border-image: repeating-linear-gradient(180deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
||||||
|
|
@ -499,8 +499,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-time-font-rel {
|
.title-time-font-rel {
|
||||||
font-size: 30rpx;
|
font-size: 25rpx;
|
||||||
margin-top: -5rpx;
|
margin-bottom: 5rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-time-items {
|
.title-time-items {
|
||||||
|
|
@ -520,7 +523,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 209rpx;
|
height: 167rpx;
|
||||||
width: calc(100%);
|
width: calc(100%);
|
||||||
transition: all 0.8s;
|
transition: all 0.8s;
|
||||||
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
||||||
|
|
@ -530,7 +533,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-container {
|
.right-container {
|
||||||
width: calc(100% - 235rpx);
|
width: calc(100% - 310rpx);
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
transition: opacity 1s ease;
|
transition: opacity 1s ease;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -569,17 +572,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.doctorsay-container-container {
|
.doctorsay-container-container {
|
||||||
border: 2rpx solid #fff;
|
width: 100%;
|
||||||
width: 2050rpx;
|
|
||||||
height: 1340rpx;
|
|
||||||
/* 设置背景图和白色背景 */
|
|
||||||
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;
|
overflow: hidden;
|
||||||
|
|
||||||
.doctorsay-container-title {
|
.doctorsay-container-title {
|
||||||
|
|
@ -589,105 +582,8 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
.doctorsay-container-right {
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-right: 50rpx;
|
|
||||||
/* width: 550rpx; */
|
|
||||||
|
|
||||||
.doctorsay-container-juzhen {
|
|
||||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
|
||||||
color: #fff;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
padding: 10rpx 20rpx;
|
|
||||||
border-radius: 20rpx;
|
|
||||||
font-size: 27rpx;
|
|
||||||
margin-right: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-button-father {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
.doctorsay-container-button-target {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
background-color: #3FA9F5;
|
|
||||||
color: #fff;
|
|
||||||
width: 140rpx;
|
|
||||||
height: 60rpx;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
font-size: 28rpx;
|
|
||||||
border-radius: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-button {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
background-color: #fff;
|
|
||||||
width: 140rpx;
|
|
||||||
height: 60rpx;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
font-size: 28rpx;
|
|
||||||
border-radius: 10rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-right-kuai-cheng {
|
|
||||||
background-color: #FFDBA1;
|
|
||||||
height: 35rpx;
|
|
||||||
width: 35rpx;
|
|
||||||
border-radius: 7rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-right-kuai-zi {
|
|
||||||
background-color: #7B61FF;
|
|
||||||
height: 35rpx;
|
|
||||||
width: 35rpx;
|
|
||||||
border-radius: 7rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-kuai-font {
|
|
||||||
font-size: 32rpx;
|
|
||||||
margin-left: 10rpx;
|
|
||||||
margin-right: 25rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-left {
|
.doctorsay-container-left {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.doctorsay-container-share {
|
|
||||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
|
||||||
color: #fff;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
padding: 10rpx 20rpx;
|
|
||||||
border-radius: 20rpx;
|
|
||||||
font-size: 27rpx;
|
|
||||||
margin-left: 20rpx;
|
|
||||||
margin-top: -3rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-left-gun {
|
|
||||||
margin-top: 7rpx;
|
|
||||||
margin-left: 40rpx;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
width: 13rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
background: linear-gradient(to bottom, #04BCED, #0160CE);
|
|
||||||
border-radius: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.doctorsay-container-left-font {
|
|
||||||
font-size: 38rpx;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -695,9 +591,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-container-title-nav {
|
.right-container-title-nav {
|
||||||
margin-top: 75rpx;
|
/* margin-top: 75rpx; */
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
margin-left: 20rpx;
|
/* margin-left: 20rpx; */
|
||||||
|
|
||||||
.right-icons {
|
.right-icons {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -713,14 +609,6 @@
|
||||||
margin-top: -30rpx;
|
margin-top: -30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-icons-font-dark {
|
|
||||||
color: #fff;
|
|
||||||
margin-left: 10rpx;
|
|
||||||
margin-right: 10rpx;
|
|
||||||
font-size: 35rpx;
|
|
||||||
margin-top: -30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-icons-img {
|
.right-icons-img {
|
||||||
width: 80rpx;
|
width: 80rpx;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
|
|
@ -738,19 +626,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-container-title-no {
|
|
||||||
font-size: 35rpx;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-container-title-no-dark {
|
|
||||||
font-size: 35rpx;
|
|
||||||
background: linear-gradient(to bottom, #FFFFFF, #B2C8E2);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
color: transparent;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-container-title-class {
|
.right-container-title-class {
|
||||||
font-size: 35rpx;
|
font-size: 35rpx;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
|
|
@ -765,44 +640,6 @@
|
||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
color: transparent;
|
color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-container-title-class-anhei-button-wrong {
|
|
||||||
float: right;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
border-radius: 30rpx;
|
|
||||||
margin-right: 15rpx;
|
|
||||||
width: 200rpx;
|
|
||||||
height: 50rpx;
|
|
||||||
background-color: #fff;
|
|
||||||
/* border: 2rpx solid; */
|
|
||||||
|
|
||||||
.right-container-title-class-anhei {
|
|
||||||
font-size: 30rpx;
|
|
||||||
font-weight: 800;
|
|
||||||
/* color: white; */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-container-title-class-anhei-button {
|
|
||||||
float: right;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
border-radius: 30rpx;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
width: 200rpx;
|
|
||||||
height: 50rpx;
|
|
||||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
|
||||||
/* border: 2rpx solid; */
|
|
||||||
|
|
||||||
.right-container-title-class-anhei {
|
|
||||||
font-size: 30rpx;
|
|
||||||
font-weight: 800;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -831,8 +668,8 @@
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|
||||||
.title-time-blue-img {
|
.title-time-blue-img {
|
||||||
height: 209rpx;
|
height: 167rpx;
|
||||||
width: 230rpx;
|
width: 200rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.time-button-black-spe {
|
.time-button-black-spe {
|
||||||
|
|
@ -975,8 +812,8 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -6rpx;
|
top: -6rpx;
|
||||||
right: -4rpx;
|
right: -4rpx;
|
||||||
width: 65rpx;
|
width: 55rpx;
|
||||||
height: 60rpx;
|
height: 40rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-time-zhejiao {
|
.title-time-zhejiao {
|
||||||
|
|
@ -989,9 +826,9 @@
|
||||||
|
|
||||||
.title-time-font {
|
.title-time-font {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 3rpx;
|
top: 0rpx;
|
||||||
right: 5rpx;
|
right: 5rpx;
|
||||||
font-size: 20rpx;
|
font-size: 14rpx;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1710,7 +1547,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 209rpx;
|
height: 167rpx;
|
||||||
width: calc(100%);
|
width: calc(100%);
|
||||||
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -1727,7 +1564,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 209rpx;
|
height: 167rpx;
|
||||||
width: calc(100%);
|
width: calc(100%);
|
||||||
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -1944,8 +1781,8 @@
|
||||||
|
|
||||||
.boom-title {
|
.boom-title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 105rpx;
|
top: 140rpx;
|
||||||
left: 60rpx;
|
left: 0rpx;
|
||||||
width: 60rpx;
|
width: 60rpx;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
background-color: #c4dbf4;
|
background-color: #c4dbf4;
|
||||||
|
|
@ -1977,14 +1814,14 @@
|
||||||
|
|
||||||
.boom-father {
|
.boom-father {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 186rpx;
|
top: 220rpx;
|
||||||
left: 60rpx;
|
left: 0rpx;
|
||||||
width: 60rpx;
|
width: 60rpx;
|
||||||
height: 1110rpx;
|
height: 1110rpx;
|
||||||
background: linear-gradient(to bottom, #c4dbf4, #c9c2ef, #c6dcf3);
|
/* background: linear-gradient(to bottom, #c4dbf4, #c9c2ef, #c6dcf3); */
|
||||||
border-bottom: 2rpx solid #fff;
|
/* border-bottom: 2rpx solid #fff; */
|
||||||
border-left: 2rpx solid #fff;
|
/* border-left: 2rpx solid #fff; */
|
||||||
border-bottom-left-radius: 20rpx;
|
/* border-bottom-left-radius: 20rpx; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-bottom-bgc {
|
.scroll-bottom-bgc {
|
||||||
|
|
@ -2008,7 +1845,7 @@
|
||||||
|
|
||||||
|
|
||||||
.boom-son {
|
.boom-son {
|
||||||
height: 209rpx;
|
height: 167rpx;
|
||||||
width: 60rpx;
|
width: 60rpx;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -2019,11 +1856,11 @@
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
border-top: 1rpx solid transparent;
|
border-top: 1rpx solid transparent;
|
||||||
border-bottom: 1rpx solid transparent;
|
border-bottom: 1rpx solid transparent;
|
||||||
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
/* border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.boom-son-target {
|
.boom-son-target {
|
||||||
height: 209rpx;
|
height: 167rpx;
|
||||||
width: 60rpx;
|
width: 60rpx;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -2034,7 +1871,7 @@
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
border-top: 1rpx solid transparent;
|
border-top: 1rpx solid transparent;
|
||||||
border-bottom: 1rpx solid transparent;
|
border-bottom: 1rpx solid transparent;
|
||||||
border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1;
|
/* border-image: repeating-linear-gradient(90deg, #0184db 0px, #0184db 6rpx, transparent 6rpx, transparent 12rpx) 1; */
|
||||||
/* 确保文字在容器内居中 */
|
/* 确保文字在容器内居中 */
|
||||||
background: linear-gradient(to bottom, #ff8a00, #eceaff);
|
background: linear-gradient(to bottom, #ff8a00, #eceaff);
|
||||||
/* border-bottom-right-radius: 40rpx;
|
/* border-bottom-right-radius: 40rpx;
|
||||||
|
|
@ -2058,11 +1895,9 @@
|
||||||
|
|
||||||
.popup-share-content {
|
.popup-share-content {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 515rpx;
|
/* right: 515rpx; */
|
||||||
display: flex;
|
display: flex;
|
||||||
// justify-content: center;
|
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
// align-items: center;
|
|
||||||
width: 800rpx;
|
width: 800rpx;
|
||||||
height: 380rpx;
|
height: 380rpx;
|
||||||
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.7);
|
||||||
|
|
@ -6,71 +6,37 @@
|
||||||
<!-- 轮盘 -->
|
<!-- 轮盘 -->
|
||||||
<joystick @movecard="movecard" />
|
<joystick @movecard="movecard" />
|
||||||
<view class="right-container-title-nav">
|
<view class="right-container-title-nav">
|
||||||
<text :class="darkFans?`right-container-title-no-dark`:`right-container-title-no`">
|
<text style="margin-left: 30rpx;">
|
||||||
ID:12345678
|
NUID:2508000001
|
||||||
</text>
|
</text>
|
||||||
<text :class="darkFans?`right-container-title-no-dark`:`right-container-title-no`">
|
<text class="new-weight">
|
||||||
名称:未命名01
|
护理单元01
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<view class="right-icons">
|
<view class="right-icons">
|
||||||
<image class="right-icons-img" :src="`/static/index/undericons/man.png`" />
|
<view class="doctorsay-container-share">
|
||||||
<view :class="darkFans?`right-icons-font-dark`: `right-icons-font` ">王金福</view>
|
立即生效
|
||||||
<image class="right-icons-img-icon"
|
|
||||||
:src="darkFans?`/static/index/undericons/face.png`:`/static/index/undericons/facelight.png`" />
|
|
||||||
<image class="right-icons-img-icon"
|
|
||||||
:src="darkFans?`/static/index/undericons/hand.png`:`/static/index/undericons/handlight.png`" />
|
|
||||||
<image class="right-icons-img-icon"
|
|
||||||
:src="darkFans?`/static/index/undericons/out.png`:`/static/index/undericons/outlight.png`" />
|
|
||||||
</view>
|
</view>
|
||||||
<view class="right-container-title-class-anhei-button-wrong" @click="newchange(0)">
|
<view class="doctorsay-container-juzhen" @click="routerPush">
|
||||||
<text class="right-container-title-class-anhei">
|
预览
|
||||||
拖动模式
|
|
||||||
</text>
|
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="right-container-title-class-anhei-button">
|
<view class="doctorsay-container-share" @click="shareToWeixin">
|
||||||
<text class="right-container-title-class-anhei">
|
分享
|
||||||
手柄模式1
|
</view>
|
||||||
</text>
|
|
||||||
</view> -->
|
|
||||||
<view class="right-container-title-class-anhei-button-wrong" @click="newchange(2)">
|
|
||||||
<text class="right-container-title-class-anhei">
|
|
||||||
手柄模式
|
|
||||||
</text>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="doctorsay-container-view">
|
<view class="doctorsay-container-view">
|
||||||
<view class="doctorsay-container-container">
|
<view class="doctorsay-container-container">
|
||||||
<view class="doctorsay-container-title">
|
|
||||||
<view class="doctorsay-container-left">
|
|
||||||
<view class="doctorsay-container-left-gun"></view>
|
|
||||||
<view class="doctorsay-container-left-font">护理流程</view>
|
|
||||||
<view class="doctorsay-container-share" @click="shareToWeixin">
|
|
||||||
分享
|
|
||||||
</view>
|
|
||||||
<view class="doctorsay-container-share">
|
|
||||||
立即生效
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="doctorsay-container-right">
|
|
||||||
<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="routerPush">
|
|
||||||
预览
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="super-card">
|
<view class="super-card">
|
||||||
<view class="boom-title">
|
<!-- <view class="boom-title">
|
||||||
<view class="boom-title-left">
|
<view class="boom-title-left">
|
||||||
分
|
分
|
||||||
</view>
|
</view>
|
||||||
<view class="boom-title-right">
|
<view class="boom-title-right">
|
||||||
时
|
时
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
<view class="boom-father">
|
<view class="boom-father">
|
||||||
<view class="boom">
|
<view class="boom">
|
||||||
<view :style="{ marginTop: `-${2 *moveDownNumber}rpx` }">
|
<view :style="{ marginTop: `-${2 *moveDownNumber}rpx` }">
|
||||||
|
|
@ -86,23 +52,19 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="super-card-container">
|
<view class="super-card-container">
|
||||||
<!-- <scroll-view style="height: 920rpx;width: 100%;" :scroll-left="cardLeft" scroll-x
|
<scroll-view style="height: 920rpx;width: 100%;" :scroll-left="cardLeft" scroll-x
|
||||||
@scroll="handleTop" :show-scrollbar="false"> -->
|
@scroll="handleTop" :show-scrollbar="false">
|
||||||
<view class="scroll-wrapper" @touchstart="onTouchStart" @touchmove="onTouchMove"
|
|
||||||
@touchend="onTouchEnd">
|
|
||||||
<view class="scroll-content" :style="{ transform: `translateX(${translateX}px)` }">
|
|
||||||
<view
|
<view
|
||||||
style="display: flex;box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);width:5610rpx;background: linear-gradient(to right, #c4dbf4,#c9c2ef, #c6dcf3);">
|
style="display: flex;width:4824rpx;">
|
||||||
<view v-for="(item0,index0) in renderList" :key="index0">
|
<view v-for="(item0,index0) in timearr" :key="index0">
|
||||||
<view class="super-card-time">
|
<view class="super-card-time">
|
||||||
{{(item0.positioning.length == 1 ? ('0' + item0.positioning) : item0.positioning) + ":00"}}
|
{{(item0.positioning.length == 1 ? ('0' + item0.positioning) : item0.positioning) + ":00"}}
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="display: flex;height: calc(100% - 80rpx);">
|
<view style="display: flex;height: calc(100% - 80rpx);">
|
||||||
|
|
||||||
<scroll-view style="height: 100%;width:5610rpx" :scroll-top="scrollTop"
|
<scroll-view style="height: 100%;width:4824rpx" :scroll-top="scrollTop"
|
||||||
:scroll-y="canmove && !shakyTable" @scroll="handleScrolltime"
|
:scroll-y="canmove && !shakyTable" @scroll="handleScrolltime"
|
||||||
:show-scrollbar="false">
|
:show-scrollbar="false">
|
||||||
<view style="display: flex;height: 100%;">
|
<view style="display: flex;height: 100%;">
|
||||||
|
|
@ -150,7 +112,7 @@
|
||||||
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove"
|
v-show=" liang.index0 !== index0 || liang.index1 !== index1 || canmove"
|
||||||
style="margin-top: 5rpx;">
|
style="margin-top: 5rpx;">
|
||||||
<view class="title-time-time"
|
<view class="title-time-time"
|
||||||
style="font-size: 25rpx;">
|
style="font-size: 25rpx;margin-top: 20rpx;">
|
||||||
{{item1.startTime + `-` + item1.endTime}}
|
{{item1.startTime + `-` + item1.endTime}}
|
||||||
</view>
|
</view>
|
||||||
<image class="title-time-button"
|
<image class="title-time-button"
|
||||||
|
|
@ -160,10 +122,9 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<image v-if="item1.startTime" class="title-time-img"
|
<!-- <image v-if="item1.startTime" class="title-time-img"
|
||||||
src="/static/index/tu.png" />
|
src="/static/index/tu.png" /> -->
|
||||||
<view v-if="item1.startTime"
|
<view v-if="item1.startTime" class="title-time-font-rel">
|
||||||
class="title-time-font-rel">
|
|
||||||
{{splitString(item1.directiveName)[0]}}
|
{{splitString(item1.directiveName)[0]}}
|
||||||
</view>
|
</view>
|
||||||
<view v-if="item1.startTime" class="title-time-items">
|
<view v-if="item1.startTime" class="title-time-items">
|
||||||
|
|
@ -181,9 +142,7 @@
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</scroll-view>
|
||||||
</view>
|
|
||||||
<!-- </scroll-view> -->
|
|
||||||
<view class="scroll-bottom-bgc"></view>
|
<view class="scroll-bottom-bgc"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right-cards">
|
<view class="right-cards">
|
||||||
|
|
@ -421,7 +380,7 @@
|
||||||
import { onShow, onHide } from '@dcloudio/uni-app';
|
import { onShow, onHide } from '@dcloudio/uni-app';
|
||||||
import type { roomBtttonType } from "./index";
|
import type { roomBtttonType } from "./index";
|
||||||
import { getServiceTree, getNclist, addBatch } from "./api.js";
|
import { getServiceTree, getNclist, addBatch } from "./api.js";
|
||||||
import index from '../../request';
|
// import index from '../../request';
|
||||||
import { myArray } from './yaoshandiao.js';
|
import { myArray } from './yaoshandiao.js';
|
||||||
import joystick from '@/component/public/newgame/joysticknew.vue';
|
import joystick from '@/component/public/newgame/joysticknew.vue';
|
||||||
import skill from '@/component/public/game/skill.vue';
|
import skill from '@/component/public/game/skill.vue';
|
||||||
|
|
@ -435,11 +394,11 @@
|
||||||
},
|
},
|
||||||
darkFans: {
|
darkFans: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: true,
|
// required: true,
|
||||||
},
|
},
|
||||||
canmove: {
|
canmove: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: true,
|
// required: true,
|
||||||
},
|
},
|
||||||
liang: {
|
liang: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
|
@ -453,15 +412,16 @@
|
||||||
() => props.isold,
|
() => props.isold,
|
||||||
() => {
|
() => {
|
||||||
if (props.isold) {
|
if (props.isold) {
|
||||||
saveEditIndex.value.index0 = saveleft.value;
|
saveEditIndex.value.index0 = 9;
|
||||||
saveEditIndex.value.index1 = 0;
|
saveEditIndex.value.index1 = 0;
|
||||||
|
centerCell();
|
||||||
cardLeft.value = 1;
|
cardLeft.value = 1;
|
||||||
scrollTop.value = 1;
|
scrollTop.value = 1;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
scrollTop.value = 0;
|
scrollTop.value = 0;
|
||||||
cardLeft.value = saveleft.value * 117;
|
cardLeft.value = 605;
|
||||||
})
|
|
||||||
|
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
watch(
|
watch(
|
||||||
|
|
@ -471,14 +431,28 @@
|
||||||
})
|
})
|
||||||
watch(
|
watch(
|
||||||
() => props.isshow,
|
() => props.isshow,
|
||||||
() => {
|
(newVal, oldVal) => {
|
||||||
|
// 只有当新旧值不相同时才执行
|
||||||
|
if (newVal !== oldVal) {
|
||||||
bottomisShaking.value = false
|
bottomisShaking.value = false
|
||||||
shakyTable.value = false;
|
shakyTable.value = false
|
||||||
cardLeft.value = 1;
|
if(solveWatch.value){
|
||||||
|
solveWatch.value --
|
||||||
|
}else{
|
||||||
|
saveEditIndex.value.index0 = 9
|
||||||
|
saveEditIndex.value.index1 = 0
|
||||||
|
centerCell();
|
||||||
|
cardLeft.value = 1
|
||||||
|
scrollTop.value = 1
|
||||||
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
cardLeft.value = 702;
|
scrollTop.value = 0
|
||||||
})
|
cardLeft.value = 605
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
const bottomItems = ref([
|
const bottomItems = ref([
|
||||||
{
|
{
|
||||||
name: '纸尿裤',
|
name: '纸尿裤',
|
||||||
|
|
@ -588,91 +562,12 @@
|
||||||
const savetop = ref(0);
|
const savetop = ref(0);
|
||||||
const savebottom = ref(3);
|
const savebottom = ref(3);
|
||||||
const isMove = ref(false);
|
const isMove = ref(false);
|
||||||
const minuteArr = ['00', '05', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55']
|
|
||||||
const timearr = ref(
|
onMounted(() => {
|
||||||
Array.from({ length: 24 }, (_, hour) => ({
|
// getServiceTree().then(res=>{
|
||||||
positioning: hour.toString(),
|
// console.log("res",res)
|
||||||
children: minuteArr.map(time => ({
|
// })
|
||||||
typeName: time, // 表示分钟,如 '00', '05' 等
|
|
||||||
directiveName: '' // 默认的 directiveName
|
|
||||||
}))
|
|
||||||
}))
|
|
||||||
)
|
|
||||||
const saveEditIndex = ref({
|
|
||||||
index0: -1,
|
|
||||||
index1: -1
|
|
||||||
})
|
})
|
||||||
//、、、、、、、、、、、、、、
|
|
||||||
const renderList = [...timearr.value, ...timearr.value, ...timearr.value] // 3 组数据,中间用于实际展示
|
|
||||||
const ITEM_WIDTH = 200
|
|
||||||
const WRAPPER_WIDTH = 400
|
|
||||||
const centerIndex = timearr.value.length // 中间那组的“00”
|
|
||||||
const translateX = ref(WRAPPER_WIDTH / 2 - ITEM_WIDTH / 2 - centerIndex * ITEM_WIDTH)
|
|
||||||
let currentOffset = translateX.value
|
|
||||||
|
|
||||||
let startX = 0
|
|
||||||
let lastMoveTime = 0
|
|
||||||
let lastMoveX = 0
|
|
||||||
let velocity = 0
|
|
||||||
let inertiaTimer = null
|
|
||||||
|
|
||||||
function onTouchStart(e) {
|
|
||||||
clearInterval(inertiaTimer)
|
|
||||||
startX = e.touches[0].clientX
|
|
||||||
lastMoveTime = Date.now()
|
|
||||||
lastMoveX = startX
|
|
||||||
}
|
|
||||||
|
|
||||||
function onTouchMove(e) {
|
|
||||||
const moveX = e.touches[0].clientX
|
|
||||||
const delta = moveX - startX
|
|
||||||
translateX.value = currentOffset + delta
|
|
||||||
|
|
||||||
// 计算速度
|
|
||||||
const now = Date.now()
|
|
||||||
const deltaTime = now - lastMoveTime
|
|
||||||
if (deltaTime > 0) {
|
|
||||||
velocity = (moveX - lastMoveX) / deltaTime
|
|
||||||
lastMoveX = moveX
|
|
||||||
lastMoveTime = now
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function onTouchEnd() {
|
|
||||||
currentOffset = translateX.value
|
|
||||||
applyInertia()
|
|
||||||
}
|
|
||||||
|
|
||||||
function applyInertia() {
|
|
||||||
const friction = 0.95
|
|
||||||
const threshold = 0.1
|
|
||||||
|
|
||||||
inertiaTimer = setInterval(() => {
|
|
||||||
if (Math.abs(velocity) < threshold) {
|
|
||||||
clearInterval(inertiaTimer)
|
|
||||||
fixTranslateX()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
currentOffset += velocity * 16 // 每帧移动
|
|
||||||
velocity *= friction
|
|
||||||
translateX.value = currentOffset
|
|
||||||
|
|
||||||
fixTranslateX()
|
|
||||||
}, 16)
|
|
||||||
}
|
|
||||||
|
|
||||||
function fixTranslateX() {
|
|
||||||
const totalWidth = ITEM_WIDTH * renderList.length
|
|
||||||
const midOffset = timearr.value.length * ITEM_WIDTH
|
|
||||||
|
|
||||||
if (translateX.value < -totalWidth + ITEM_WIDTH) {
|
|
||||||
currentOffset += midOffset
|
|
||||||
translateX.value += midOffset
|
|
||||||
} else if (translateX.value > -ITEM_WIDTH) {
|
|
||||||
currentOffset -= midOffset
|
|
||||||
translateX.value -= midOffset
|
|
||||||
}
|
|
||||||
}//、、、、、、、、、、、、、、、、、、
|
|
||||||
// 上次点击时间
|
// 上次点击时间
|
||||||
const lastTap = ref(0)
|
const lastTap = ref(0)
|
||||||
// 双击的最大间隔(ms),可根据体验调整
|
// 双击的最大间隔(ms),可根据体验调整
|
||||||
|
|
@ -778,75 +673,37 @@
|
||||||
}
|
}
|
||||||
const selectType = ref(true);
|
const selectType = ref(true);
|
||||||
const deleteButton = ref(false);
|
const deleteButton = ref(false);
|
||||||
// 给摇杆用的
|
|
||||||
//看完迷糊不,我都迷糊了
|
|
||||||
//0上1右2下3左
|
|
||||||
// songisopen.value是弹窗打没打开
|
|
||||||
// clickstauts.value是弹窗的第几步
|
|
||||||
// selectType.value是选择周和月的状态
|
|
||||||
const movecard = (where : number) => {
|
const movecard = (where : number) => {
|
||||||
isDelete.value = false;
|
isDelete.value = false;
|
||||||
// console.log("?????",leftIn.value,saveleft.value*117)
|
|
||||||
if (((saveleft.value * 117 - leftIn.value) > 5) || ((leftIn.value - saveleft.value * 117) > 0)) {
|
|
||||||
cardLeft.value = 1;
|
|
||||||
nextTick(() => {
|
|
||||||
cardLeft.value = saveleft.value * 117;
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (((savetop.value * 104.5 - topIn.value) > 5) || ((topIn.value - savetop.value * 104.5) > 0)) {
|
|
||||||
scrollTop.value = 1;
|
|
||||||
nextTick(() => {
|
|
||||||
scrollTop.value = savetop.value * 104.5;
|
|
||||||
})
|
|
||||||
}
|
|
||||||
switch (where) {
|
switch (where) {
|
||||||
case 0:
|
case 0:
|
||||||
if (saveEditIndex.value.index1) {
|
if (saveEditIndex.value.index1) {
|
||||||
saveEditIndex.value.index1--
|
saveEditIndex.value.index1--
|
||||||
|
centerCell();
|
||||||
}
|
}
|
||||||
if (saveEditIndex.value.index1 < savetop.value) {
|
|
||||||
savetop.value = saveEditIndex.value.index1;
|
|
||||||
savebottom.value = saveEditIndex.value.index1 + 3
|
|
||||||
scrollTop.value = saveEditIndex.value.index1 * 104.5;
|
|
||||||
}
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
case 1:
|
case 1:
|
||||||
if (saveEditIndex.value.index0 == 23) {
|
if (saveEditIndex.value.index0 == 23) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
saveEditIndex.value.index0++
|
saveEditIndex.value.index0++
|
||||||
if (saveEditIndex.value.index0 > saveright.value) {
|
centerCell();
|
||||||
saveleft.value = saveEditIndex.value.index0 - 5;
|
|
||||||
saveright.value = saveEditIndex.value.index0
|
|
||||||
cardLeft.value = saveleft.value * 117;
|
|
||||||
}
|
|
||||||
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
case 2:
|
case 2:
|
||||||
if (saveEditIndex.value.index1 == 11) {
|
if (saveEditIndex.value.index1 == 11) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
saveEditIndex.value.index1++
|
saveEditIndex.value.index1++
|
||||||
if (saveEditIndex.value.index1 > savebottom.value) {
|
centerCell();
|
||||||
savetop.value = saveEditIndex.value.index1 - 3;
|
|
||||||
savebottom.value = saveEditIndex.value.index1;
|
|
||||||
scrollTop.value = savetop.value * 104.5;
|
|
||||||
}
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
case 3:
|
case 3:
|
||||||
if (saveEditIndex.value.index0 == 0) {
|
if (saveEditIndex.value.index0 == 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
saveEditIndex.value.index0--
|
saveEditIndex.value.index0--
|
||||||
if (saveEditIndex.value.index0 < saveleft.value) {
|
centerCell();
|
||||||
saveleft.value = saveEditIndex.value.index0;
|
|
||||||
saveright.value = saveEditIndex.value.index0 + 5;
|
|
||||||
cardLeft.value = saveleft.value * 117;
|
|
||||||
}
|
|
||||||
// isHave()
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -979,7 +836,10 @@
|
||||||
const emit = defineEmits(['darkchange', 'savename', 'saveruler', 'closename', 'changefangkuang', 'changeold']);
|
const emit = defineEmits(['darkchange', 'savename', 'saveruler', 'closename', 'changefangkuang', 'changeold']);
|
||||||
const isEdit = ref(false);
|
const isEdit = ref(false);
|
||||||
// const isLunpan = ref(false);
|
// const isLunpan = ref(false);
|
||||||
|
const saveEditIndex = ref({
|
||||||
|
index0: 9,
|
||||||
|
index1: 0
|
||||||
|
})
|
||||||
const clickstauts = ref(0)
|
const clickstauts = ref(0)
|
||||||
const secondopenValue = ref([]);
|
const secondopenValue = ref([]);
|
||||||
|
|
||||||
|
|
@ -1220,35 +1080,9 @@
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// if (cardsumit.value.op.index[2] === index) {
|
|
||||||
// cardsumit.value.op.index[2] = -1;
|
|
||||||
// cardsumit.value.op.name = ""
|
|
||||||
// openOp.value = -1
|
|
||||||
// } else {
|
|
||||||
// cardsumit.value.op.index[2] = index
|
|
||||||
// cardsumit.value.op.name = item.relName
|
|
||||||
// switch (item.cycleType) {
|
|
||||||
// case `日常护理`:
|
|
||||||
// openOp.value = 0
|
|
||||||
// break;
|
|
||||||
// case `周期护理`:
|
|
||||||
// openOp.value = 1
|
|
||||||
// break;
|
|
||||||
// case `即时护理`:
|
|
||||||
// openOp.value = 2
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// const clickweek = (index : string) => {
|
|
||||||
// cardsumit.value.weekTime = index
|
|
||||||
// }
|
|
||||||
// const clickmonth = (index : string) => {
|
|
||||||
// cardsumit.value.monthTime = index
|
|
||||||
// }
|
|
||||||
const indexsave = ref([-1, -1]);
|
const indexsave = ref([-1, -1]);
|
||||||
// (长按表格后)表格拖动结束
|
// (长按表格后)表格拖动结束
|
||||||
const rulerMoveEnd = (object : any) => {
|
const rulerMoveEnd = (object : any) => {
|
||||||
|
|
@ -1444,7 +1278,11 @@
|
||||||
current: -1,
|
current: -1,
|
||||||
bordershow: true
|
bordershow: true
|
||||||
})
|
})
|
||||||
|
const solveWatch = ref(0)
|
||||||
const whereEvent = (data : any) => {
|
const whereEvent = (data : any) => {
|
||||||
|
saveEditIndex.value.index0 = data.index0;
|
||||||
|
saveEditIndex.value.index1 = data.index1;
|
||||||
|
centerCell();
|
||||||
targetRuler.value.index0 = data.index0;
|
targetRuler.value.index0 = data.index0;
|
||||||
targetRuler.value.index1 = data.index1;
|
targetRuler.value.index1 = data.index1;
|
||||||
saveRulerTime.value.index0 = targetRuler.value.index0;
|
saveRulerTime.value.index0 = targetRuler.value.index0;
|
||||||
|
|
@ -1462,16 +1300,28 @@
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
}
|
||||||
// 定义每小时中的分钟数组,表示每 5 分钟一个时间段,总共 12 个
|
// 定义每小时中的分钟数组,表示每 5 分钟一个时间段,总共 12 个
|
||||||
|
const minuteArr = ['00', '05', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55']
|
||||||
|
const timearr = ref(
|
||||||
|
Array.from({ length: 24 }, (_, hour) => ({
|
||||||
|
positioning: hour.toString(),
|
||||||
|
children: minuteArr.map(time => ({
|
||||||
|
typeName: time, // 表示分钟,如 '00', '05' 等
|
||||||
|
directiveName: '' // 默认的 directiveName
|
||||||
|
}))
|
||||||
|
}))
|
||||||
|
)
|
||||||
onShow(() => {
|
onShow(() => {
|
||||||
bigArray.value = myArray
|
bigArray.value = myArray
|
||||||
downList.value = bigArray.value[0].children
|
downList.value = bigArray.value[0].children
|
||||||
uni.$on('where', whereEvent);
|
uni.$on('where', findback);
|
||||||
})
|
})
|
||||||
onHide(() => {
|
onHide(() => {
|
||||||
uni.$off('where', whereEvent);
|
uni.$off('where', findback);
|
||||||
});
|
});
|
||||||
|
function findback (data:any){
|
||||||
|
solveWatch.value = 3;
|
||||||
|
whereEvent(data)
|
||||||
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
rulerMoveEnd,
|
rulerMoveEnd,
|
||||||
})
|
})
|
||||||
|
|
@ -1524,22 +1374,78 @@
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const totalColumns = 24; // 总列数
|
||||||
|
const totalRows = 11; // 总行数
|
||||||
|
const visibleWidth = 1405; // 可视区域宽度 (rpx),基于 scalcType * widthType ≈ 2220
|
||||||
|
const visibleHeight = 480; // 可视区域高度 (rpx),假设显示约5行时 heightType = 102.5
|
||||||
|
function centerCell() {
|
||||||
|
if (saveEditIndex.value.index0 >= 0 && saveEditIndex.value.index0 <= totalColumns && saveEditIndex.value.index1 >= 0 && saveEditIndex.value.index1 <= totalRows) {
|
||||||
|
// 计算点击格子的中心位置 (rpx)
|
||||||
|
const cellCenterX = (saveEditIndex.value.index0 + 0.5) * 201;
|
||||||
|
const cellCenterY = (saveEditIndex.value.index1 - 0.5) * 167;
|
||||||
|
// 计算 scrollLeft 和 scrollTop,使格子中心位于可视区域中心
|
||||||
|
cardLeft.value = cellCenterX - visibleWidth / 2;
|
||||||
|
scrollTop.value = cellCenterY - visibleHeight / 2;
|
||||||
|
|
||||||
|
// 计算网格总宽高
|
||||||
|
const totalWidth = totalColumns * 201;
|
||||||
|
const totalHeight = totalRows * 167;
|
||||||
|
|
||||||
|
// 限制 scrollLeft 和 scrollTop 在有效范围内
|
||||||
|
cardLeft.value = Math.max(0, Math.min(cardLeft.value, totalWidth - visibleWidth)) / 2;
|
||||||
|
// scrollTop.value = 0
|
||||||
|
scrollTop.value = Math.max(0, Math.min(scrollTop.value, totalHeight - visibleHeight)) / 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
// 主页的css
|
// 主页的css
|
||||||
@import './index';
|
@import './index';
|
||||||
.scroll-wrapper {
|
.right-container-title-nav {
|
||||||
height: 920rpx;
|
margin-top: 60rpx;
|
||||||
width: 100%;
|
display: flex;
|
||||||
overflow: hidden;
|
align-items: center;
|
||||||
background-color: #f5f5f5;
|
height: 60rpx;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
font-size: 28rpx;
|
||||||
|
|
||||||
|
.new-weight {
|
||||||
|
margin-left: 30rpx;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-content {
|
.right-icons {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
align-items: center;
|
||||||
will-change: transform;
|
height: 60rpx;
|
||||||
|
}
|
||||||
|
.doctorsay-container-share {
|
||||||
|
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||||
|
color: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10rpx 20rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
font-size: 27rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
.doctorsay-container-juzhen {
|
||||||
|
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||||
|
color: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10rpx 20rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
font-size: 27rpx;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
export type Link = {
|
||||||
|
url : string;
|
||||||
|
targetUrl : string;
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,639 @@
|
||||||
|
<template>
|
||||||
|
<view :class="darkFans?`darkbackgroundContainer`:`backgroundContainer`" @touchmove="getxy" @touchend="cleanall">
|
||||||
|
<!-- 这些东西是为了拖动模式来设计的 -->
|
||||||
|
<view class="move-font" v-show="savename && clientX" :animation="animationData">
|
||||||
|
{{savename}}
|
||||||
|
</view>
|
||||||
|
<view v-show="saveruler.cycleType"
|
||||||
|
:class="saveruler.cycleType=='日常' ? `title-time-border-yellow`:`title-time-border-pouple`"
|
||||||
|
:animation="animationData" style="font-size: 30rpx;overflow: hidden;">
|
||||||
|
<view class="title-time" v-show="saveruler.startTime" style="margin-top: 5rpx;">
|
||||||
|
<view class="title-time-time" style="font-size: 30rpx;">
|
||||||
|
{{saveruler.startTime + `-` + saveruler.endTime}}
|
||||||
|
</view>
|
||||||
|
<image class="title-time-button"
|
||||||
|
:src="saveruler.cycleType=='日常'?`/static/index/yellowbian.png`:`/static/index/puoplebian.png`" />
|
||||||
|
<view class="title-time-font">
|
||||||
|
{{saveruler.cycleType}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="margin-top: 20rpx;font-weight: 700;">
|
||||||
|
{{splitString(saveruler.directiveName)[0]}}
|
||||||
|
</view>
|
||||||
|
<view class="down-icons" :style="saveruler.cycleType!='日常'?{backgroundColor:`rgb(212,203,255)`}:{}"
|
||||||
|
v-show="splitString(saveruler.directiveName)[1]">
|
||||||
|
<view class="" v-for="(item,index) in splitString(saveruler.directiveName).slice(1)" :key="index">
|
||||||
|
<view class="icon" :style="saveruler.cycleType!='日常'?{backgroundColor:`rgb(123,97,255)`}:{}">
|
||||||
|
{{splitString(saveruler.directiveName)[1]}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="left-container">
|
||||||
|
<view class="left-head">
|
||||||
|
<image class="left-head-img" src="/static/index/oldman.png" />
|
||||||
|
<text :class="darkFans?`left-head-font-dark`:`left-head-font`">
|
||||||
|
王金福
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
<view class="menus-father">
|
||||||
|
<view v-for="(item,index) in leftMenuArray" :key="index" class="menu" :style="index === menuIndex?{backgroundColor:`#fff`}:{} " @click="changeMenu(index)">
|
||||||
|
<!-- <image class="menu-img" :src="item.url" /> -->
|
||||||
|
<donghua :width="`65rpx`" :height="`65rpx`" :links="item.url" :playing="index === menuIndex" />
|
||||||
|
|
||||||
|
<text style="font-size: 33rpx;margin-left: 15rpx;">
|
||||||
|
{{item.name}}
|
||||||
|
</text>
|
||||||
|
<!-- <view class="blue-circle" v-show="index === menuIndex">
|
||||||
|
<image class="blue-circle-size" :src="`/static/index/ray.png`" />
|
||||||
|
</view>
|
||||||
|
<image class="left-img" :src="index === menuIndex ? item.targetUrl : item.url"
|
||||||
|
@click="changeMenu(index)" /> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="left-img-container">
|
||||||
|
<view v-for="(item,index) in iconList" :key="index" class="blue-circle-pos">
|
||||||
|
<view class="blue-circle" v-show="index === menuIndex">
|
||||||
|
<image class="blue-circle-size" :src="`/static/index/ray.png`" />
|
||||||
|
</view>
|
||||||
|
<image class="left-img" :src="index === menuIndex ? item.targetUrl : item.url"
|
||||||
|
@click="changeMenu(index)" />
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
<!-- 主页 -->
|
||||||
|
<index :isShow="menuIndexshow" v-show="!menuIndex" />
|
||||||
|
|
||||||
|
<nurse :isold="isOld===2" :liang="indexNumber" :isshow="menuIndexshowsecond" v-show="menuIndex==1&&isOld===2" />
|
||||||
|
<!-- 超凶表格 -->
|
||||||
|
<!-- 旧表格 -->
|
||||||
|
<!-- <rightItemssecond ref="ruler" :liang="indexNumber" :isshow="menuIndexshowsecond" :canmove="canmove"
|
||||||
|
:darkFans="darkFans" v-show="menuIndex==1&&!isOld" @darkchange="darkchange" @savename="openname"
|
||||||
|
@saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" @changeold="isOldchange" /> -->
|
||||||
|
<!-- 新表格 -->
|
||||||
|
<!-- <specialruler ref="rulernew" :isold="isOld===1" :liang="indexNumber" :isshow="menuIndexshowsecond" :canmove="canmove"
|
||||||
|
:darkFans="darkFans" v-show="menuIndex==1&&isOld===1" @darkchange="darkchange" @savename="openname"
|
||||||
|
@saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" @changeold="isOldchange" /> -->
|
||||||
|
<!-- 新表格 -->
|
||||||
|
<!-- <rightItemssecondrelnew ref="rulernew" :isold="isOld===2" :liang="indexNumber" :isshow="menuIndexshowsecond" :canmove="canmove"
|
||||||
|
:darkFans="darkFans" v-show="menuIndex==1&&isOld===2" @darkchange="darkchange" @savename="openname"
|
||||||
|
@saveruler="openruler" @changefangkuang="changefangkuang" @cleanname="closename" @changeold="isOldchange" /> -->
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted, onBeforeUnmount } from 'vue';
|
||||||
|
import type { Link } from "./index";
|
||||||
|
import index from "./component/index.vue"
|
||||||
|
import nurse from "./component/nurse/index.vue"
|
||||||
|
// import rightItemssecond from "../../component/rightItemssecond/index.vue"
|
||||||
|
// import specialruler from "../../component/specialruler/index.vue"
|
||||||
|
// import rightItemssecondrelnew from "../../component/rightItemssecondrelnew/index.vue"
|
||||||
|
import { onShow } from '@dcloudio/uni-app';
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
menuIndex.value = 0
|
||||||
|
isOld.value = 2;
|
||||||
|
uni.getSystemInfoSync(); // 确保 global 注入生效
|
||||||
|
uni.pageScrollTo; // 避免某些平台热更新惊群
|
||||||
|
// 被动监听提升拖拽性能
|
||||||
|
name.value = uni.getStorageSync('realname')
|
||||||
|
})
|
||||||
|
|
||||||
|
const name = ref("");
|
||||||
|
// 通用的生成函数
|
||||||
|
function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
|
||||||
|
return Array.from({ length: count }, (_, i) => {
|
||||||
|
const idx = pad
|
||||||
|
? String(i + startIndex).padStart(2, '0')
|
||||||
|
: i + startIndex
|
||||||
|
return `${base}/${prefix}${idx}.${ext}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const leftMenuArray = ref([
|
||||||
|
{
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'home_',
|
||||||
|
5, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
),name:'首页'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'nurse_',
|
||||||
|
8, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
),name:'护嘱'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'doctor_',
|
||||||
|
6, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
),name:'医嘱'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'lead_',
|
||||||
|
12, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
),name:'请领'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'device_',
|
||||||
|
7, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
),name:'设备'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: genPaths(
|
||||||
|
'/static/index/newindex/curve',
|
||||||
|
'return_',
|
||||||
|
8, // 张数
|
||||||
|
'png',
|
||||||
|
1, // 起始索引为 1
|
||||||
|
false // 不补零
|
||||||
|
),name:'返回'
|
||||||
|
},
|
||||||
|
])
|
||||||
|
const menuArray = ref([
|
||||||
|
{ url: '/static/index/lefticon/index.png',name:'首页' },
|
||||||
|
{ url: '/static/index/lefticon/nurse.png',name:'护嘱' },
|
||||||
|
{ url: '/static/index/lefticon/doctor.png',name:'医嘱' },
|
||||||
|
{ url: '/static/index/lefticon/give.png',name:'请领' },
|
||||||
|
{ url: '/static/index/lefticon/wifi.png' ,name:'设备'},
|
||||||
|
{ url: '/static/index/lefticon/back.png',name:'返回' }
|
||||||
|
])
|
||||||
|
|
||||||
|
// 初始化左侧菜单列表
|
||||||
|
const iconList = ref<Link[]>([
|
||||||
|
{ url: '/static/index/lefticon/index.png', targetUrl: '/static/index/lefticontarget/blueindex.png' },
|
||||||
|
{ url: '/static/index/lefticon/nurse.png', targetUrl: '/static/index/lefticontarget/bluenurse.png' },
|
||||||
|
{ url: '/static/index/lefticon/doctor.png', targetUrl: '/static/index/lefticontarget/bluedoctor.png' },
|
||||||
|
{ url: '/static/index/lefticon/give.png', targetUrl: '/static/index/lefticontarget/givedark.png' },
|
||||||
|
{ url: '/static/index/lefticon/wifi.png', targetUrl: '/static/index/lefticontarget/bluewifi.png' },
|
||||||
|
{ url: '/static/index/lefticon/back.png', targetUrl: '/static/index/lefticontarget/blueback.png' }
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 当前选中的菜单索引
|
||||||
|
const menuIndex = ref<number>(-1);
|
||||||
|
const menuIndexshow = ref<boolean>(false);
|
||||||
|
const menuIndexshowsecond = ref<boolean>(false);
|
||||||
|
// 暗黑模式
|
||||||
|
const darkFans = ref<boolean>(false);
|
||||||
|
//旧表格还是新表格
|
||||||
|
const isOld = ref(-1);
|
||||||
|
// 当前选中的菜单索引
|
||||||
|
const roomTar = ref<number[]>([]);
|
||||||
|
//滑块按钮
|
||||||
|
const firstcurrentIndex = ref<number>(0);
|
||||||
|
const firstcurrentIndexup = ref<number>(0);
|
||||||
|
const secondcurrentIndexup = ref<number>(0);
|
||||||
|
const secondcurrentIndex = ref<number>(0);
|
||||||
|
const thirdcurrentIndex = ref<number>(0);
|
||||||
|
// 暗黑模式改变
|
||||||
|
const darkchange = (res : boolean) => {
|
||||||
|
darkFans.value = res
|
||||||
|
}
|
||||||
|
//切换表格新旧
|
||||||
|
const isOldchange = (res : number) => {
|
||||||
|
isOld.value = res;
|
||||||
|
}
|
||||||
|
// 变更菜单
|
||||||
|
const changeMenu = (index : number) => {
|
||||||
|
// if (index === 3) {
|
||||||
|
// menuIndexshow.value = false;
|
||||||
|
// menuIndexshowsecond.value = false;
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url: `/pages/somethingmove/index?darkFans=${darkFans.value}`,
|
||||||
|
// animationType: 'slide-in-right',
|
||||||
|
// animationDuration: 400// 设置动画时长为300毫秒, // 动画持续时间,单位为毫秒
|
||||||
|
// });
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// else if (index === 5) {
|
||||||
|
// uni.navigateBack()
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
if(menuIndex.value===index){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
menuIndex.value = index;
|
||||||
|
menuIndexshow.value = false
|
||||||
|
menuIndexshowsecond.value = false
|
||||||
|
if (index === 5) {
|
||||||
|
uni.navigateBack()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
switch (index) {
|
||||||
|
case 0:
|
||||||
|
menuIndexshow.value = true
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
menuIndexshowsecond.value = true
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}, 50)
|
||||||
|
};
|
||||||
|
const clientX = ref(0);
|
||||||
|
const clientY = ref(0);
|
||||||
|
const savename = ref("")
|
||||||
|
const canmove = ref(true)
|
||||||
|
const indexNumber = ref({
|
||||||
|
index0: 999,
|
||||||
|
index1: 999,
|
||||||
|
})
|
||||||
|
//翻页计时器
|
||||||
|
const canTrigger = ref(true);
|
||||||
|
//全局获得x轴和y轴
|
||||||
|
const animation = uni.createAnimation({
|
||||||
|
duration: 0,
|
||||||
|
timingFunction: 'linear',
|
||||||
|
delay: 0
|
||||||
|
});
|
||||||
|
const animationData = ref({});
|
||||||
|
let ticking = false;
|
||||||
|
let handle = null;
|
||||||
|
|
||||||
|
const getxyrel = (event) => {
|
||||||
|
const touch = event.touches[0];
|
||||||
|
clientX.value = 2 * (Math.floor(touch.clientX) - 100);
|
||||||
|
clientY.value = 2 * (Math.floor(touch.clientY) - 55);
|
||||||
|
animation.translate3d(clientX.value / 2, clientY.value / 2, 0).step({ duration: 0 });
|
||||||
|
animationData.value = animation.export();
|
||||||
|
|
||||||
|
|
||||||
|
// 遍历数组,找到点击区域所在的对
|
||||||
|
const translateX = Math.floor(touch.clientX) - 50;
|
||||||
|
const translateY = Math.floor(touch.clientY) - 25;
|
||||||
|
|
||||||
|
const clickedItem = fangkuaiValue.value.find(item => {
|
||||||
|
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 < 200 && canTrigger.value && !isOld.value) {
|
||||||
|
ruler.value?.nextItems();
|
||||||
|
canTrigger.value = false;
|
||||||
|
setTimeout(() => {
|
||||||
|
canTrigger.value = true;
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
// if (clientX.value < 350 && canTrigger.value && isOld.value===1) {
|
||||||
|
|
||||||
|
// rulernew.value?.nextItems();
|
||||||
|
// canTrigger.value = false;
|
||||||
|
// setTimeout(() => {
|
||||||
|
// canTrigger.value = true;
|
||||||
|
// }, 1000);
|
||||||
|
// }
|
||||||
|
} else {
|
||||||
|
indexNumber.value.index0 = 999
|
||||||
|
indexNumber.value.index1 = 999
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//节流
|
||||||
|
const getxy = throttle(getxyrel, 40);
|
||||||
|
|
||||||
|
const fangkuaiValue = ref([])
|
||||||
|
//所有适合的方块
|
||||||
|
const openname = (res : string, fangkuai : any) => {
|
||||||
|
savename.value = res;
|
||||||
|
canmove.value = false;
|
||||||
|
fangkuaiValue.value = fangkuai
|
||||||
|
}
|
||||||
|
const changefangkuang = (fangkuang : any) => {
|
||||||
|
fangkuaiValue.value = fangkuang
|
||||||
|
}
|
||||||
|
//移动方块
|
||||||
|
const saveruler = ref({
|
||||||
|
directiveName: "",
|
||||||
|
cycleType: "",
|
||||||
|
positioningLong: "0",
|
||||||
|
typeName: "",
|
||||||
|
startTime: "",
|
||||||
|
id: "",
|
||||||
|
endTime: "",
|
||||||
|
tagName: null
|
||||||
|
})
|
||||||
|
const openruler = (res : any, fangkuai : any) => {
|
||||||
|
saveruler.value = res
|
||||||
|
canmove.value = false;
|
||||||
|
fangkuaiValue.value = fangkuai
|
||||||
|
}
|
||||||
|
//解决拖动bug
|
||||||
|
const closename = () => {
|
||||||
|
savename.value = "";
|
||||||
|
canmove.value = true;
|
||||||
|
}
|
||||||
|
const ruler = ref(null)
|
||||||
|
const rulernew = ref(null)
|
||||||
|
//结束、禁止滑动
|
||||||
|
const cleanall = () => {
|
||||||
|
clientX.value = 9999;
|
||||||
|
clientY.value = 9999;
|
||||||
|
animation.translate3d(clientX.value / 2, clientY.value / 2, 0).step({ duration: 0 });
|
||||||
|
animationData.value = animation.export();
|
||||||
|
canmove.value = true;
|
||||||
|
indexNumber.value = {
|
||||||
|
index0: 999,
|
||||||
|
index1: 999,
|
||||||
|
};
|
||||||
|
if (savename.value) {
|
||||||
|
if (!isOld.value) {
|
||||||
|
ruler.value?.rulerEnd(savename.value);
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
} else if (saveruler.value.typeName) {
|
||||||
|
if (isOld.value===0) {
|
||||||
|
ruler.value?.rulerMoveEnd(saveruler.value);
|
||||||
|
} else {
|
||||||
|
rulernew.value?.rulerMoveEnd(saveruler.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
savename.value = "";
|
||||||
|
saveruler.value = {
|
||||||
|
directiveName: "",
|
||||||
|
cycleType: "",
|
||||||
|
positioningLong: "0",
|
||||||
|
typeName: "",
|
||||||
|
startTime: "",
|
||||||
|
id: "",
|
||||||
|
endTime: "",
|
||||||
|
tagName: null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
//节流函数
|
||||||
|
function throttle(fn, delay) {
|
||||||
|
let lastExecutionTime = 0;
|
||||||
|
return function (...args) {
|
||||||
|
const now = Date.now();
|
||||||
|
if (now - lastExecutionTime >= delay) {
|
||||||
|
lastExecutionTime = now;
|
||||||
|
fn.apply(this, args);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
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)
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
|
||||||
|
.menus-father{
|
||||||
|
margin-top: 50rpx;
|
||||||
|
width: 100%;
|
||||||
|
.menu{
|
||||||
|
height: 110rpx;
|
||||||
|
width: 230rpx;
|
||||||
|
// background-color: #fff;
|
||||||
|
border-radius: 60rpx;
|
||||||
|
margin: 45rpx auto;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
// .menu-img{
|
||||||
|
// width: 65rpx;
|
||||||
|
// height: 65rpx;
|
||||||
|
// margin-right: 15rpx;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.backgroundContainer {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
// background-image: url('/static/index/lightbgcnew.png');
|
||||||
|
// background-size: cover;
|
||||||
|
// background-position: center center;
|
||||||
|
background-color: #eff0f4;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
//暗黑模式
|
||||||
|
.darkbackgroundContainer {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
background-image: url('/static/index/background.png');
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center center;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.move-font {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
pointer-events: none;
|
||||||
|
background-color: rgb(201, 232, 255);
|
||||||
|
border-radius: 20rpx;
|
||||||
|
border: 2rpx solid #fff;
|
||||||
|
width: 220rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 40rpx;
|
||||||
|
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
|
||||||
|
will-change: transform;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-container {
|
||||||
|
width: 280rpx;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.blue-circle-pos {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.blue-circle {
|
||||||
|
position: absolute;
|
||||||
|
top: -50rpx;
|
||||||
|
left: -68rpx;
|
||||||
|
|
||||||
|
.blue-circle-size {
|
||||||
|
width: 170rpx;
|
||||||
|
height: 250rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-head {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.left-head-img {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
margin-top: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-head-font {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-head-font-dark {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 40rpx;
|
||||||
|
background: linear-gradient(to right, #EBF4FF, #ADC4E0);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-img-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.left-img {
|
||||||
|
width: 93rpx;
|
||||||
|
height: 93rpx;
|
||||||
|
margin: 50rpx 0;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-time-border-yellow {
|
||||||
|
width: 255rpx;
|
||||||
|
height: 189rpx;
|
||||||
|
margin: 10rpx;
|
||||||
|
border: 1rpx solid #dae8fa;
|
||||||
|
background: linear-gradient(to bottom, #fff1db, #ffe2b2);
|
||||||
|
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);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<view class="input-father">
|
<view class="input-father">
|
||||||
<view class="add">+86</view>
|
<view class="add">+86</view>
|
||||||
<view class="shu"></view>
|
<view class="shu"></view>
|
||||||
<input style="font-size: 27rpx;" type="number" v-model="form.username" maxlength="11" placeholder="请输入手机号"
|
<input style="font-size: 27rpx;height: 350rpx;" type="number" v-model="form.username" maxlength="11" placeholder="请输入手机号"
|
||||||
@blur="getImg" />
|
@blur="getImg" />
|
||||||
</view>
|
</view>
|
||||||
<view class="input-father">
|
<view class="input-father">
|
||||||
|
|
@ -163,6 +163,9 @@
|
||||||
function closebottom() {
|
function closebottom() {
|
||||||
openbottom.value = false;
|
openbottom.value = false;
|
||||||
isTarget.value = true;
|
isTarget.value = true;
|
||||||
|
login()
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function closePopup() {
|
function closePopup() {
|
||||||
|
|
@ -239,6 +242,7 @@
|
||||||
duration: 500 // 持续时间,单位ms
|
duration: 500 // 持续时间,单位ms
|
||||||
})
|
})
|
||||||
uni.setStorageSync('token', res.result.token);
|
uni.setStorageSync('token', res.result.token);
|
||||||
|
uni.setStorageSync('username', form.username);
|
||||||
uni.setStorageSync('realname', res.result.userInfo.realname);
|
uni.setStorageSync('realname', res.result.userInfo.realname);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
jumpTo(`/pages/Initialization/index`)
|
jumpTo(`/pages/Initialization/index`)
|
||||||
|
|
@ -260,7 +264,10 @@
|
||||||
});
|
});
|
||||||
// 生命周期钩子
|
// 生命周期钩子
|
||||||
onShow(() => {
|
onShow(() => {
|
||||||
zyupgrade.value?.check_update()
|
zyupgrade.value?.check_update();
|
||||||
|
if(uni.getStorageSync('token') && uni.getStorageSync('token')!==1){
|
||||||
|
jumpTo(`/pages/Initialization/index`)
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ const ballHeight = 60; // 悬浮球高度
|
||||||
const longPressThreshold = 300; // 长按时间阈值(毫秒)
|
const longPressThreshold = 300; // 长按时间阈值(毫秒)
|
||||||
|
|
||||||
// 悬浮球当前位置
|
// 悬浮球当前位置
|
||||||
const ballLeft = ref(1070);
|
const ballLeft = ref(600);
|
||||||
const ballTop = ref(650);
|
const ballTop = ref(5);
|
||||||
|
|
||||||
// 用于判断是否进入拖动状态
|
// 用于判断是否进入拖动状态
|
||||||
const isDragging = ref(false);
|
const isDragging = ref(false);
|
||||||
|
|
@ -53,7 +53,6 @@ onMounted(() => {
|
||||||
// 触摸开始:记录初始位置,同时启动长按定时器
|
// 触摸开始:记录初始位置,同时启动长按定时器
|
||||||
function handleTouchStart(e) {
|
function handleTouchStart(e) {
|
||||||
const touch = e.touches[0];
|
const touch = e.touches[0];
|
||||||
// console.log("????0",touch.clientX )
|
|
||||||
startTouchX = touch.clientX.toFixed(2);
|
startTouchX = touch.clientX.toFixed(2);
|
||||||
startTouchY = touch.clientY.toFixed(2);
|
startTouchY = touch.clientY.toFixed(2);
|
||||||
initialLeft = ballLeft.value;
|
initialLeft = ballLeft.value;
|
||||||
|
|
@ -84,14 +83,12 @@ function handleTouchMove(e) {
|
||||||
if(isDragging.value){
|
if(isDragging.value){
|
||||||
|
|
||||||
const touch = e.touches[0];
|
const touch = e.touches[0];
|
||||||
// console.log("????0",touch.clientX )
|
|
||||||
let newLeft = initialLeft + (touch.clientX.toFixed(2) - startTouchX);
|
let newLeft = initialLeft + (touch.clientX.toFixed(2) - startTouchX);
|
||||||
let newTop = initialTop + (touch.clientY.toFixed(2) - startTouchY);
|
let newTop = initialTop + (touch.clientY.toFixed(2) - startTouchY);
|
||||||
// 限制左右边界:不让超出屏幕(计算时需要考虑悬浮球自身尺寸)
|
// 限制左右边界:不让超出屏幕(计算时需要考虑悬浮球自身尺寸)
|
||||||
newLeft = Math.max(0, Math.min(newLeft, windowWidth - ballWidth));
|
newLeft = Math.max(0, Math.min(newLeft, windowWidth - ballWidth));
|
||||||
// 限制上下边界
|
// 限制上下边界
|
||||||
newTop = Math.max(0, Math.min(newTop, windowHeight - ballHeight));
|
newTop = Math.max(0, Math.min(newTop, windowHeight - ballHeight));
|
||||||
|
|
||||||
ballLeft.value = newLeft;
|
ballLeft.value = newLeft;
|
||||||
ballTop.value = newTop;
|
ballTop.value = newTop;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ const ballHeight = 60; // 悬浮球高度
|
||||||
const longPressThreshold = 300; // 长按时间阈值(毫秒)
|
const longPressThreshold = 300; // 长按时间阈值(毫秒)
|
||||||
|
|
||||||
// 悬浮球当前位置
|
// 悬浮球当前位置
|
||||||
const ballLeft = ref(980);
|
const ballLeft = ref(680);
|
||||||
const ballTop = ref(650);
|
const ballTop = ref(5);
|
||||||
|
|
||||||
// 用于判断是否进入拖动状态
|
// 用于判断是否进入拖动状态
|
||||||
const isDragging = ref(false);
|
const isDragging = ref(false);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,13 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="doctorsay-container-right">
|
<view class="doctorsay-container-right">
|
||||||
|
<view class="titlebutton-father">
|
||||||
|
<view v-for="(item,index) in jiajianArray" :key="index">
|
||||||
|
<view class="titlebutton" @click="changeType(index)">
|
||||||
|
{{item}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
<view class="titlebutton-father">
|
<view class="titlebutton-father">
|
||||||
<view v-for="(item,index) in buttonArray" :key="index">
|
<view v-for="(item,index) in buttonArray" :key="index">
|
||||||
<view :class="getClassItem(index)" @click="changeTarget(index)">
|
<view :class="getClassItem(index)" @click="changeTarget(index)">
|
||||||
|
|
@ -96,15 +103,15 @@
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<addball :isShow="true" @clickBall="changeType(0)" />
|
<!-- <addball :isShow="true" @clickBall="changeType(0)" />
|
||||||
<decball :isShow="true" @clickBall="changeType(1)" />
|
<decball :isShow="true" @clickBall="changeType(1)" /> -->
|
||||||
<max :isShow="true" :isZhengti="scalcType!==6" @clickBall="changeRuler" />
|
<max :isShow="true" :isZhengti="scalcType!==6" @clickBall="changeRuler" />
|
||||||
<!-- <min :isShow="true" @clickBall="scalcType=24" /> -->
|
<!-- <min :isShow="true" @clickBall="scalcType=24" /> -->
|
||||||
<!-- 轮盘 -->
|
<!-- 轮盘 -->
|
||||||
<joystick @movecard="movecard" />
|
<joystick @movecard="movecard" />
|
||||||
<!-- 长按的弹出层` -->
|
<!-- 长按的弹出层` -->
|
||||||
<view v-show="isopen" class="popup-overlay" @click="isopen=false">
|
<!-- <view v-show="isopen" class="popup-overlay" @click="isopen=false"> -->
|
||||||
<view class="popup-overlay-content"
|
<view class="popup-overlay-content" v-show="isopen"
|
||||||
: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)' }"
|
: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)' }"
|
||||||
@click.stop>
|
@click.stop>
|
||||||
<view class="popup-overlay-content-left">
|
<view class="popup-overlay-content-left">
|
||||||
|
|
@ -122,7 +129,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
<!-- </view> -->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -142,6 +149,7 @@
|
||||||
darkFans : boolean
|
darkFans : boolean
|
||||||
}
|
}
|
||||||
const buttonArray = ref(["全部", "日常", "周期"]);
|
const buttonArray = ref(["全部", "日常", "周期"]);
|
||||||
|
const jiajianArray = ref(["放大", "缩小"]);
|
||||||
const buttonTarget = ref(0);
|
const buttonTarget = ref(0);
|
||||||
const sysInfo = uni.getSystemInfoSync();
|
const sysInfo = uni.getSystemInfoSync();
|
||||||
const rpx2px = sysInfo.windowWidth / 750;
|
const rpx2px = sysInfo.windowWidth / 750;
|
||||||
|
|
@ -269,10 +277,9 @@
|
||||||
|
|
||||||
// 限制 scrollLeft 和 scrollTop 在有效范围内
|
// 限制 scrollLeft 和 scrollTop 在有效范围内
|
||||||
scrollLeft.value = Math.max(0, Math.min(scrollLeft.value, totalWidth - visibleWidth)) /2;
|
scrollLeft.value = Math.max(0, Math.min(scrollLeft.value, totalWidth - visibleWidth)) /2;
|
||||||
// scrollTop.value = 0
|
// scrollTop.value = 0// scrollTop.value = 0
|
||||||
scrollTop.value = Math.max(0, Math.min(scrollTop.value, totalHeight - visibleHeight)) /2;
|
scrollTop.value = Math.max(0, Math.min(scrollTop.value, totalHeight - visibleHeight)) /2;
|
||||||
|
setTimeout(()=>rulerTouchClick(setTimeout(()=>rulerTouchClick(changetimearr.value[clickX.value].children[clickY.value],clickX.value,clickY.value) ,50),clickX.value,clickY.value) ,50)
|
||||||
// console.log("????",scrollLeft.value,scrollTop.value,rpx2px)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const clickX = ref(10);
|
const clickX = ref(10);
|
||||||
|
|
@ -288,182 +295,96 @@
|
||||||
switch (newVal) {
|
switch (newVal) {
|
||||||
case 24:
|
case 24:
|
||||||
widthType.value = 92.5;
|
widthType.value = 92.5;
|
||||||
// scrollLeft.value = 0;
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 18
|
cardFont.value = 18
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 23:
|
case 23:
|
||||||
widthType.value = 96.5;
|
widthType.value = 96.5;
|
||||||
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 50
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 18
|
cardFont.value = 18
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 22:
|
case 22:
|
||||||
widthType.value = 101;
|
widthType.value = 101;
|
||||||
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 100
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 18
|
cardFont.value = 18
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 21:
|
case 21:
|
||||||
widthType.value = 106;
|
widthType.value = 106;
|
||||||
// scrollLeft.value = 159
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 159
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 19
|
cardFont.value = 19
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 20:
|
case 20:
|
||||||
widthType.value = 112;
|
widthType.value = 112;
|
||||||
// scrollLeft.value = 230
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 230
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 20
|
cardFont.value = 20
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 19:
|
case 19:
|
||||||
widthType.value = 117;
|
widthType.value = 117;
|
||||||
// scrollLeft.value = 292
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 292
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 21
|
cardFont.value = 21
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 18:
|
case 18:
|
||||||
widthType.value = 124;
|
widthType.value = 124;
|
||||||
// scrollLeft.value = 373
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 373
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 22
|
cardFont.value = 22
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 17:
|
case 17:
|
||||||
widthType.value = 131;
|
widthType.value = 131;
|
||||||
// scrollLeft.value = 395
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 395
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 23
|
cardFont.value = 23
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 16:
|
case 16:
|
||||||
widthType.value = 139;
|
widthType.value = 139;
|
||||||
// scrollLeft.value = 416
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 416
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 24
|
cardFont.value = 24
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 15:
|
case 15:
|
||||||
widthType.value = 148;
|
widthType.value = 148;
|
||||||
// scrollLeft.value = 445
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 445
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 25
|
cardFont.value = 25
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 14:
|
case 14:
|
||||||
widthType.value = 159;
|
widthType.value = 159;
|
||||||
// scrollLeft.value = 477
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 477
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 26
|
cardFont.value = 26
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 13:
|
case 13:
|
||||||
widthType.value = 171;
|
widthType.value = 171;
|
||||||
// scrollLeft.value = 515
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 515
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 27
|
cardFont.value = 27
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 12:
|
case 12:
|
||||||
widthType.value = 185;
|
widthType.value = 185;
|
||||||
// scrollLeft.value = 555
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 555
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 28
|
cardFont.value = 28
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 11:
|
case 11:
|
||||||
widthType.value = 202;
|
widthType.value = 202;
|
||||||
// scrollLeft.value = 607
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 607
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5
|
heightType.value = 102.5
|
||||||
cardFont.value = 29
|
cardFont.value = 29
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 10:
|
case 10:
|
||||||
widthType.value = 222;
|
widthType.value = 222;
|
||||||
// scrollLeft.value = 665
|
|
||||||
// if(clickX.value>10){
|
|
||||||
// scrollLeft.value = 665
|
|
||||||
// }else{
|
|
||||||
// scrollLeft.value = 0
|
|
||||||
// }
|
|
||||||
heightType.value = 102.5;
|
heightType.value = 102.5;
|
||||||
cardFont.value = 30
|
cardFont.value = 30
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 9:
|
case 9:
|
||||||
widthType.value = 247;
|
widthType.value = 247;
|
||||||
// scrollLeft.value = 740;
|
|
||||||
heightType.value = 140
|
heightType.value = 140
|
||||||
cardFont.value = 30
|
cardFont.value = 30
|
||||||
centerCell();
|
centerCell();
|
||||||
|
|
@ -471,28 +392,23 @@
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
widthType.value = 280;
|
widthType.value = 280;
|
||||||
// scrollLeft.value = 850
|
|
||||||
heightType.value = 150
|
heightType.value = 150
|
||||||
cardFont.value = 30
|
cardFont.value = 30
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 7:
|
case 7:
|
||||||
widthType.value = 320;
|
widthType.value = 320;
|
||||||
// scrollLeft.value = 960
|
|
||||||
heightType.value = 160
|
heightType.value = 160
|
||||||
cardFont.value = 30
|
cardFont.value = 30
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
case 6:
|
case 6:
|
||||||
widthType.value = 380;
|
widthType.value = 380;
|
||||||
// scrollLeft.value = 1150
|
|
||||||
heightType.value = 170
|
heightType.value = 170
|
||||||
cardFont.value = 30
|
cardFont.value = 30
|
||||||
centerCell();
|
centerCell();
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
// centerCell();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
@ -501,7 +417,7 @@
|
||||||
const lastTap = ref(0)
|
const lastTap = ref(0)
|
||||||
// 单击逻辑的定时器 ID
|
// 单击逻辑的定时器 ID
|
||||||
const clickTimer = ref(null)
|
const clickTimer = ref(null)
|
||||||
function handleTap(item : any, index0 : number, index1 : number, e : any) {
|
function handleTap(item : any, index0 : number, index1 : number) {
|
||||||
const now = Date.now()
|
const now = Date.now()
|
||||||
// 先清除之前的单击定时器,防止误触
|
// 先清除之前的单击定时器,防止误触
|
||||||
if (clickTimer.value != null) {
|
if (clickTimer.value != null) {
|
||||||
|
|
@ -518,11 +434,14 @@
|
||||||
lastTap.value = 0 // 重置,避免连续三次触发
|
lastTap.value = 0 // 重置,避免连续三次触发
|
||||||
} else {
|
} else {
|
||||||
// 延迟 250ms 执行单击逻辑,以等待可能的第二次触摸
|
// 延迟 250ms 执行单击逻辑,以等待可能的第二次触摸
|
||||||
clickTimer.value = setTimeout(() => {
|
// clickTimer.value = setTimeout(() => {
|
||||||
// message.value = '检测到单击事件'
|
// rulerTouchClick(item, index0, index1, e)
|
||||||
// console.log('单击逻辑执行')
|
// }, 250)
|
||||||
rulerTouchClick(item, index0, index1, e)
|
if(item.directiveName){
|
||||||
}, 250)
|
clickX.value = index0;
|
||||||
|
clickY.value = index1;
|
||||||
|
}
|
||||||
|
|
||||||
lastTap.value = now
|
lastTap.value = now
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -534,10 +453,9 @@
|
||||||
const timer = ref<number | null>(null)
|
const timer = ref<number | null>(null)
|
||||||
|
|
||||||
//表格点击开始
|
//表格点击开始
|
||||||
const rulerTouchClick = (item : any, index0 : number, index1 : number, e : any) => {
|
const rulerTouchClick = (item : any, index0 : number, index1 : number) => {
|
||||||
if (item.directiveName) {
|
if (item.directiveName) {
|
||||||
clickX.value = index0;
|
|
||||||
clickY.value = index1;
|
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
const query = uni.createSelectorQuery()
|
const query = uni.createSelectorQuery()
|
||||||
query
|
query
|
||||||
|
|
@ -656,7 +574,6 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// changeWhiteLine()
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
changetimearr.value = JSON.parse(JSON.stringify(timearr.value));
|
changetimearr.value = JSON.parse(JSON.stringify(timearr.value));
|
||||||
|
|
@ -669,8 +586,6 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// changeWhiteLine()
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -880,7 +795,7 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 800rpx;
|
// width: 800rpx;
|
||||||
|
|
||||||
.doctorsay-container-juzhen {
|
.doctorsay-container-juzhen {
|
||||||
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
|
||||||
|
|
@ -891,6 +806,7 @@
|
||||||
padding: 10rpx 20rpx;
|
padding: 10rpx 20rpx;
|
||||||
border-radius: 20rpx;
|
border-radius: 20rpx;
|
||||||
font-size: 27rpx;
|
font-size: 27rpx;
|
||||||
|
margin-right: 50rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.doctorsay-container-button-father {
|
.doctorsay-container-button-father {
|
||||||
|
|
@ -1146,22 +1062,21 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup-overlay {
|
// .popup-overlay {
|
||||||
position: fixed;
|
// position: fixed;
|
||||||
top: 0;
|
// top: 0;
|
||||||
left: 0;
|
// left: 0;
|
||||||
right: 0;
|
// right: 0;
|
||||||
bottom: 0;
|
// bottom: 0;
|
||||||
display: flex;
|
// display: flex;
|
||||||
justify-content: center;
|
// justify-content: center;
|
||||||
align-items: center;
|
// align-items: center;
|
||||||
/* 添加毛玻璃效果 */
|
// /* 添加毛玻璃效果 */
|
||||||
z-index: 998;
|
// z-index: 998;
|
||||||
|
|
||||||
.popup-overlay-content {
|
.popup-overlay-content {
|
||||||
position: absolute;
|
position: fixed;
|
||||||
display: flex;
|
display: flex;
|
||||||
// justify-content: center;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 800rpx;
|
width: 800rpx;
|
||||||
height: 390rpx;
|
height: 390rpx;
|
||||||
|
|
@ -1172,7 +1087,6 @@
|
||||||
transition: opacity 0.4s ease;
|
transition: opacity 0.4s ease;
|
||||||
|
|
||||||
.popup-overlay-content-left {
|
.popup-overlay-content-left {
|
||||||
// background-color: red;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 350rpx;
|
width: 350rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -1187,7 +1101,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup-overlay-content-left-font {
|
.popup-overlay-content-left-font {
|
||||||
// margin-top: 20rpx;
|
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1210,7 +1123,6 @@
|
||||||
.time-text {
|
.time-text {
|
||||||
margin-left: 10rpx;
|
margin-left: 10rpx;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
// font-weight: 700;
|
|
||||||
width: 380rpx;
|
width: 380rpx;
|
||||||
margin-bottom: 50rpx;
|
margin-bottom: 50rpx;
|
||||||
line-height: 35rpx;
|
line-height: 35rpx;
|
||||||
|
|
@ -1246,7 +1158,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
|
|
||||||
.titlebutton-father {
|
.titlebutton-father {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,8 @@
|
||||||
const longPressThreshold = 300; // 长按时间阈值(毫秒)
|
const longPressThreshold = 300; // 长按时间阈值(毫秒)
|
||||||
|
|
||||||
// 悬浮球当前位置
|
// 悬浮球当前位置
|
||||||
const ballLeft = ref(1070);
|
const ballLeft = ref(1050);
|
||||||
const ballTop = ref(550);
|
const ballTop = ref(650);
|
||||||
|
|
||||||
// 用于判断是否进入拖动状态
|
// 用于判断是否进入拖动状态
|
||||||
const isDragging = ref(false);
|
const isDragging = ref(false);
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,10 @@ export default (params) => {
|
||||||
let method = params.method || "get";
|
let method = params.method || "get";
|
||||||
let data = params.data || {};
|
let data = params.data || {};
|
||||||
let header = {
|
let header = {
|
||||||
'Blade-Auth': uni.getStorageSync('token') || '',
|
'X-Access-Token': uni.getStorageSync('token') || '',
|
||||||
'Content-Type': 'application/json;charset=UTF-8',
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
'Authorization': 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',
|
'Authorization': 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',
|
||||||
'Tenant-Id': uni.getStorageSync('tenantId') || 'xxx', // avue配置相关
|
// 'Tenant-Id': uni.getStorageSync('tenantId') || 'xxx', // avue配置相关
|
||||||
...params.header
|
...params.header
|
||||||
}
|
}
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
|
@ -31,7 +31,7 @@ export default (params) => {
|
||||||
if (res.statusCode == 200) {
|
if (res.statusCode == 200) {
|
||||||
resolve(res.data);
|
resolve(res.data);
|
||||||
} else {
|
} else {
|
||||||
uni.clearStorageSync()
|
// uni.clearStorageSync()
|
||||||
switch (res.statusCode) {
|
switch (res.statusCode) {
|
||||||
case 401:
|
case 401:
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
|
|
@ -39,6 +39,7 @@ export default (params) => {
|
||||||
content: "登录过期",
|
content: "登录过期",
|
||||||
showCancel: false,
|
showCancel: false,
|
||||||
success() {
|
success() {
|
||||||
|
uni.clearStorageSync()
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pages/login/login",
|
url: "/pages/login/login",
|
||||||
|
|
|
||||||
BIN
static/ceshi.png
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 706 KiB |
|
Before Width: | Height: | Size: 5.8 MiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 609 KiB |
|
After Width: | Height: | Size: 607 KiB |
|
After Width: | Height: | Size: 604 KiB |
|
After Width: | Height: | Size: 600 KiB |
|
After Width: | Height: | Size: 627 KiB |
|
After Width: | Height: | Size: 679 KiB |
|
After Width: | Height: | Size: 682 KiB |
|
After Width: | Height: | Size: 672 KiB |
|
After Width: | Height: | Size: 665 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.2 KiB |