160 lines
3.5 KiB
Vue
160 lines
3.5 KiB
Vue
|
<!-- 左侧菜单提取(已废弃)保留一下待用 -->
|
|||
|
<!-- <template>
|
|||
|
<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="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="jumpTonew(item.path)" />
|
|||
|
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script setup>
|
|||
|
import {
|
|||
|
defineProps,
|
|||
|
defineEmits,
|
|||
|
ref
|
|||
|
} from 'vue';
|
|||
|
|
|||
|
// 定义 Props
|
|||
|
const props = defineProps({
|
|||
|
darkFans: {
|
|||
|
type: Boolean,
|
|||
|
default: false
|
|||
|
},
|
|||
|
menuIndex: {
|
|||
|
type: Number,
|
|||
|
default: 0
|
|||
|
},
|
|||
|
});
|
|||
|
// 定义事件
|
|||
|
const emit = defineEmits(['click']);
|
|||
|
// 初始化左侧菜单列表
|
|||
|
const iconList = ref([{
|
|||
|
url: '/static/index/lefticon/index.png',
|
|||
|
targetUrl: '/static/index/lefticontarget/blueindex.png',
|
|||
|
path: `/pages/index/index`
|
|||
|
},
|
|||
|
{
|
|||
|
url: '/static/index/lefticon/nurse.png',
|
|||
|
targetUrl: '/static/index/lefticontarget/bluenurse.png',
|
|||
|
path: `/pages/doctorsay/index`
|
|||
|
},
|
|||
|
{
|
|||
|
url: '/static/index/lefticon/doctor.png',
|
|||
|
targetUrl: '/static/index/lefticontarget/bluedoctor.png',
|
|||
|
path: ''
|
|||
|
},
|
|||
|
{
|
|||
|
url: '/static/index/lefticon/give.png',
|
|||
|
targetUrl: '/static/index/lefticontarget/givedark.png',
|
|||
|
path: ''
|
|||
|
},
|
|||
|
{
|
|||
|
url: '/static/index/lefticon/wifi.png',
|
|||
|
targetUrl: '/static/index/lefticontarget/bluewifi.png',
|
|||
|
path: ''
|
|||
|
},
|
|||
|
{
|
|||
|
url: '/static/index/lefticon/back.png',
|
|||
|
targetUrl: '/static/index/lefticontarget/blueback.png',
|
|||
|
path: ''
|
|||
|
}
|
|||
|
]);
|
|||
|
|
|||
|
const handleClick = () => {
|
|||
|
emit('click'); // 触发父组件的事件
|
|||
|
};
|
|||
|
// 变更菜单
|
|||
|
|
|||
|
const jumpTonew = (path) => {
|
|||
|
const pages = getCurrentPages(); // 获取当前页面栈
|
|||
|
if (pages.length === 0) return; // 确保有页面
|
|||
|
const currentPage = pages[pages.length - 1]; // 获取当前页面
|
|||
|
const currentPath = '/' + currentPage.route; // 获取当前页面路径(带前缀 /)
|
|||
|
if ((currentPath !== path) && path) {
|
|||
|
uni.redirectTo({
|
|||
|
url: path,
|
|||
|
animationType: 'none', // 取消动画效果
|
|||
|
animationDuration: 0 // 设置动画持续时间为0,表示没有动画
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped lang="less">
|
|||
|
.left-container {
|
|||
|
width: 235rpx;
|
|||
|
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: 150rpx;
|
|||
|
height: 150rpx;
|
|||
|
margin-top: 60rpx;
|
|||
|
}
|
|||
|
|
|||
|
.left-head-font {
|
|||
|
font-weight: 700;
|
|||
|
font-size: 40rpx;
|
|||
|
}
|
|||
|
|
|||
|
.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;
|
|||
|
// margin-top: 30rpx;
|
|||
|
|
|||
|
.left-img {
|
|||
|
width: 93rpx;
|
|||
|
height: 93rpx;
|
|||
|
// margin-top: 25rpx;
|
|||
|
// margin-bottom: 25rpx;
|
|||
|
margin: 50rpx 0;
|
|||
|
z-index: 100;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</style> -->
|