vue实现侧边折叠菜单栏手风琴效果

简介: 该文章介绍了如何使用Vue.js实现具有手风琴效果的侧边折叠菜单栏,包括HTML结构设计、CSS样式设置以及JavaScript交互逻辑的编写。

在我们做管理后台亦或是产品流程时,总是需要一个菜单栏或者导航栏来架起我们的产品架构,那么,如何用vue实现侧边折叠导航栏呢?接下来将一一介绍。

                                   请先看效果演示图。

步骤1:先架构整个页面的布局,撰写html、css和js
HTML代码

<template>
    <div id="main">
        <div class="content">
            <!-- 左边导航栏 -->
            <div class="admin_nav col-lg-3 col-xl-2" v-show="fullWidth">
                <div class = "admin_nav_site">
                    <div class="title">
                        数据中心后台管理
                    </div>
                    <ul v-for="(item,index) in navList" :key="index">
                        <li @click="handleToTitle(index,item)" @mouseenter="changeTitleColor(index)" @mouseleave="removeTitleColor(index)"
                         ref="title" :class="{active:currentSort == index}" class="col-lg-12">
                            <div class="left_icon">
                                <i :class="'iconfont '+item.className"></i>
                            </div>
                            <div class="middle">
                                {
  {item.title}}
                            </div>
                            <div class="right_icon">
                                <i :class="'iconfont '+item.close"></i>
                            </div>
                        </li>
                        <li v-for="(it,idx) in item.secMenu" :key="idx" v-show="item.isSubShow" class="active1">
                            <router-link :to="it.path" tag="a">{
  {it.name}}</router-link>
                        </li>
                    </ul>
                </div>

            </div>
            <!-- 右边内容 -->
            <div class="admin_content col-12 col-md-12 col-lg-12 col-xl-10">
                <div class="admin_header">
                    <!-- 导航图标 -->
                    <div class="H5_item" v-show="!fullWidth">
                        <i class="iconfont icon-daohanglan" @click="make_menu" class-name="H5-menu"></i>
                    </div>
                    <div class="user">
                        <div class="userHead">
                            <span>
                                <img src="../../assets/image/userhead.svg">
                            </span>
                            <span>admin</span>
                        </div>
                        <div class="logOut">
                            <i class="iconfont icon-tuichu"></i>
                        </div>
                    </div>
                </div>
                <div class="admin_body">
                    <keep-alive>
                        <router-view />
                    </keep-alive>
                </div>
            </div>

        </div>


    </div>
</template>

JS代码

<script>
    import axios from 'axios';

    export default {
   
        name: 'navigation',
        data() {
   
            return {
   
                navList: [{
   
                        title: '用户管理',
                        isSubShow: false,
                        className: 'icon-guanliyuan1',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [
                            {
   
                            name: '工号管理',
                            path: '/home/navigation-one/user'
                            }, 
                            // {
   
                            // name: '角色管理',
                            // path: '/home/navigation-one/role'
                            // }, 
                            // {
   
                            // name: '权限管理',
                            // path: '/home/navigation-one/user'
                            // }, 
                        ]


                    },
                    {
   
                        title: '资源管理',
                        isSubShow: false,
                        className: 'icon-ziyuan',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [
                            {
   
                                name: '我的收藏',
                                path: '/home/navigation-one/user'
                            },
                            {
   
                                name: '我的项目',
                                path: '/home/navigation-one/role'
                            }
                        ]

                    },
                    {
   
                        title: '综合管理',
                        isSubShow: false,
                        className: 'icon-zonghe',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [{
   
                                name: '划配管理',
                                path: '/home/navigation-one/user'
                            },
                            {
   
                                name: '数据信息',
                                path: '/home/navigation-one/role'
                            }
                        ]

                    },
                    {
   
                        title: '系统消息',
                        isSubShow: false,
                        className: 'icon-xiaoxi',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [{
   
                                name: '实时动态',
                                path: '/home/navigation-one/user'
                            },
                            {
   
                                name: '过去动态',
                                path: '/home/navigation-one/role'
                            }
                        ]
                    }
                ],
                currentSort: 0,
                pagetype: "index",
                fullWidth: true,
                dismenu: true
            }
        },
        methods: {
   
            active(index) {
   
                this.currentSort = index;
            },
            changeTitleColor(index) {
   
                this.currentSort = index;
            },
            removeTitleColor(index) {
   
                this.currentSort = null;
            },
            handleToTitle(ind, item) {
   
                this.navList[ind].isSubShow = !this.navList[ind].isSubShow;
                if (this.navList[ind].isSubShow == true) {
   
                    this.navList[ind].close = 'icon-zhedie';
                } else {
   
                    this.navList[ind].close = 'icon-close';
                }
            }
        }

    }
</script>

CSS代码

    #main {
   
        background: #F0F6FF;
        font-size: 0.16rem;
    }

    #main .content {
   
        display: flex;
        flex-direction: row;
    }

    .content .admin_nav {
   
        min-height: 9.37rem;
        max-height: 1.3rem;
        padding: 0 !important;
        background: #364150;
        position: relative;

    }

    .content .admin_nav .admin_nav_site{
   
        height: 100vh;
    }

    .content .admin_nav .title {
   
        height: 1.39rem;
        line-height: 1.39rem;
        background: rgba(63, 73, 86, 1);
        color: #FFFFFF;
        text-align: center;
        font-size: 0.18rem;
        display: flex;
        justify-content: center;
    }

    .content .admin_nav .title div {
   
        padding: 0 0.03rem;
    }

    .content .admin_nav .title div:first-child i {
   
        font-size: 0.18rem;
    }

    .content .admin_nav ul .active {
   
        background: rgba(68, 81, 99, 1);
    }

    .content .admin_nav ul .active1 a.router-link-active {
   
        color: #fff;
    }

    .content .admin_nav ul li {
   
        height: 0.6rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        font-size: 0.18rem;
    }

    .content .admin_nav ul li a {
   
        color: #cecdc5;
        cursor: pointer;
    }

    .content .admin_nav ul li:first-child {
   
        font-size: 0.2rem;
        height: 0.64rem;
        display: flex;
        flex-direction: row;
        align-items: center;
        color: #BEC5C0;
        cursor: pointer;
    }

    .content .admin_nav ul li:first-child div {
   
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #BEC5C0;
    }

    .content .admin_nav ul li:first-child .left_icon {
   
        width: 22%;
    }

    .content .admin_nav ul li:first-child .left_icon i {
   
        color: #1296DB;
    }

    .content .admin_nav ul li:first-child .middle {
   
        width: 56%;
        display: flex;
        justify-content: flex-start;
    }

    .content .admin_nav ul li:first-child .right_icon {
   
        width: 22%;
    }

    .admin_nav .admin .middle:hover {
   
        color: #fff;
    }

    .admin_nav .admin .right_icon i:hover {
   
        color: #fff;
    }

    .admin_nav .admin .middle.router-link-active {
   
        color: #fff;
    }

    .content .admin_nav_position {
   
        position: absolute;
        z-index: 3000;
    }

    .content .admin_content {
   
        padding: 0 !important;
    }

    .content .admin_content .admin_header {
   
        width: 100%;
        height: 0.6rem;
        background: #364150;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .content .admin_content .admin_header .H5_item {
   
        width: 0.4rem;
        height: 0.4rem;
        border-radius: 0.2rem;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-left: 0.2rem;
    }

    .content .admin_content .admin_header .H5_item i {
   
        font-size: 0.22rem;
        color: #fff;
    }

    .content .admin_content .admin_header .user {
   
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }

    .content .admin_content .admin_header .user .userHead {
   
        height: 0.6rem;
        display: flex;
        flex-direction: row;
        align-items: center;
        color: #fff;
        font-size: 0.18rem;
    }

    .content .admin_content .admin_header .user .userHead span {
   
        padding: 0 0.05rem;
    }

    .content .admin_content .admin_header .user .userHead span:nth-child(1) {
   
        position: relative;
    }

    .content .admin_content .admin_header .user .userHead span img {
   
        width: 0.4rem;
        height: 0.4rem;
        border-radius: 50%;
    }

    .content .admin_content .admin_header .user .userHead span input {
   
        width: 0.4rem;
        height: 0.4rem;
        position: absolute;
        overflow: hidden;
        opacity: 0;
        cursor: pointer;
    }

    .content .admin_content .admin_header .user .logOut {
   
        color: #fff;
        margin-left: 0.12rem;
        margin-right: 0.5rem;
    }

    .content .admin_content .admin_header .user .logOut i {
   
        color: #1296DB;
        font-size: 0.24rem;
        cursor: pointer;
    }

    .toggle-cart-enter-active {
   
        transition: all 0.4s linear;
    }

    .toggle-cart-leave-active {
   
        transition: all 0.4s linear;
    }

    .toggle-cart-enter {
   
        transform: translateX(-200%);
    }

    .toggle-cart-leave-active {
   
        transform: translateX(-200%);
    }

步骤2:撰写完基本网页布局和样式后,对部分细节进行剖析。

1、动态绑定路径

<router-link :to="it.path" tag="a">{
   {
   it.name}}</router-link>

2、一级菜单,标题及折叠符号

①通过@mouseenter和@mouseleave事件,当鼠标移入和移出时,改变标题区域背景颜色

②通过@click事件,当鼠标点击时,显示二级菜单列表

③利用:class动态绑定类名,触发active方法,修改折叠符号状态;绑定图标类名,通过遍历,修改对应图标

<ul v-for="(item,index) in navList" :key="index">
    <li @click="handleToTitle(index,item)" @mouseenter="changeTitleColor(index)" @mouseleave="removeTitleColor(index)" ref="title" :class="{active:currentSort == index}" class="col-lg-12">
        <div class="left_icon">
            <i :class="'iconfont '+item.className"></i>
        </div>
        <div class="middle">
            {
  {item.title}}
        </div>
        <div class="right_icon">
            <i :class="'iconfont '+item.close"></i>
        </div>
    </li>
    <li v-for="(it,idx) in item.secMenu" :key="idx" v-show="item.isSubShow" class="active1">
        <router-link :to="it.path" tag="a">{
  {it.name}}</router-link>
    </li>
</ul>
active(index) {
   
    this.currentSort = index;
},

changeTitleColor(index) {
   
    this.currentSort = index;
},

removeTitleColor(index) {
   
    this.currentSort = null;
},

handleToTitle(ind, item) {
   
    this.navList[ind].isSubShow = !this.navList[ind].isSubShow;
    if (this.navList[ind].isSubShow == true) {
   
        this.navList[ind].close = 'icon-zhedie';
    } else {
   
        this.navList[ind].close = 'icon-close';
    }
}

步骤3:菜单栏完成后,在网页端能进行查看,但是还需做一个手机端适配,这样就达到两端同步适应的效果。实现如下:

①对左边导航栏再撰写第二套代码,并绑定好对应的参数实现显示和隐藏

②运用vue已有的transition,绑定name值,实现动画效果绑定

HTML代码

<!-- 移动端导航栏 -->
<transition name="toggle-cart">
    <div class="admin_nav admin_nav_position col-8 col-md-5 col-lg-3 col-xl-3" v-show="!fullWidth&&!dismenu">
        <div class="title">
            <div v-show="!fullWidth">
                <i class="iconfont icon-daohanglan" @click="make_menu" class-name="H5-menu"></i>
            </div>
            <div>数据中心后台管理</div>
        </div>
        <ul v-for="(item,index) in navList" :key="index">
            <li @click="handleToTitle(index,item)" @mouseenter="changeTitleColor(index)" @mouseleave="removeTitleColor(index)" ref="title" :class="{active:currentSort == index}">
                <div class="left_icon">
                    <i :class="'iconfont '+item.className"></i>
                </div>
                <div class="middle">
                    {
  {item.title}}
                </div>
                <div class="right_icon">
                    <i :class="'iconfont '+item.close"></i>
                </div>
            </li>
            <li v-for="(it,idx) in item.secMenu" :key="idx" v-show="item.isSubShow" class="active1">
                <router-link :to="it.path" tag="a">{
  {it.name}}</router-link>
            </li>
        </ul>
    </div>
</transition>

JS代码

mounted() {
   
    window.onresize = () => {
    //监听屏幕变化
        this.page_width();
    };
    this.page_width();
},
methods: {
   
    make_menu() {
    //点击导航图标
        this.dismenu = !this.dismenu;
    },
    page_width() {
    //获取屏幕宽度
        var screenWidth = window.screen.width;
        if (screenWidth <= 1024) {
   
            this.fullWidth = false;
        } else {
   
            this.fullWidth = true;
        }
    }
}

最后来看下手机端效果:

附上全文代码:

<template>
    <div id="main">
        <div class="content">
            <!-- 左边导航栏 -->
            <div class="admin_nav col-lg-3 col-xl-2" v-show="fullWidth">
                <div class = "admin_nav_site">
                    <div class="title">
                        数据中心后台管理
                    </div>
                    <ul v-for="(item,index) in navList" :key="index">
                        <li @click="handleToTitle(index,item)" @mouseenter="changeTitleColor(index)" @mouseleave="removeTitleColor(index)"         
                        ref="title" :class="{active:currentSort == index}" class="col-lg-12">
                            <div class="left_icon">
                                <i :class="'iconfont '+item.className"></i>
                            </div>
                            <div class="middle">
                                {
   {
   item.title}}
                            </div>
                            <div class="right_icon">
                                <i :class="'iconfont '+item.close"></i>
                            </div>
                        </li>
                        <li v-for="(it,idx) in item.secMenu" :key="idx" v-show="item.isSubShow" class="active1">
                            <router-link :to="it.path" tag="a">{
   {
   it.name}}</router-link>
                        </li>
                    </ul>
                </div>

                <!-- 管理员端 -->
                <!-- <ul class="admin">
                    <li class="col-lg-12">
                        <div class="left_icon">
                            <i class="iconfont icon-guanliyuan1"></i>
                        </div>
                        <router-link to="/admin/administrator/secadmin" tag="div" class="middle">管理员端</router-link>
                        <div class="right_icon">
                            <i class="iconfont icon-jinru"></i>
                        </div>
                    </li>
                </ul> -->
            </div>
            <!-- 右边内容 -->
            <div class="admin_content col-12 col-md-12 col-lg-12 col-xl-10">
                <div class="admin_header">
                    <!-- 导航图标 -->
                    <div class="H5_item" v-show="!fullWidth">
                        <i class="iconfont icon-daohanglan" @click="make_menu" class-name="H5-menu"></i>
                    </div>
                    <div class="user">
                        <div class="userHead">
                            <span>
                                <img src="../../assets/image/userhead.svg">
                            </span>
                            <span>admin</span>
                        </div>
                        <div class="logOut">
                            <i class="iconfont icon-tuichu"></i>
                        </div>
                    </div>
                </div>
                <div class="admin_body">
                    <keep-alive>
                        <router-view />
                    </keep-alive>
                </div>
            </div>
            <!-- 移动端导航栏 -->
            <transition name="toggle-cart">
                <div class="admin_nav admin_nav_position col-8 col-md-5 col-lg-3 col-xl-3" v-show="!fullWidth&&!dismenu">
                    <div class="title">
                        <div v-show="!fullWidth">
                            <i class="iconfont icon-daohanglan" @click="make_menu" class-name="H5-menu"></i>
                        </div>
                        <div>数据中心后台管理</div>
                    </div>
                    <ul v-for="(item,index) in navList" :key="index">
                        <li @click="handleToTitle(index,item)" @mouseenter="changeTitleColor(index)" @mouseleave="removeTitleColor(index)"
                         ref="title" :class="{active:currentSort == index}">
                            <div class="left_icon">
                                <i :class="'iconfont '+item.className"></i>
                            </div>
                            <div class="middle">
                                {
   {
   item.title}}
                            </div>
                            <div class="right_icon">
                                <i :class="'iconfont '+item.close"></i>
                            </div>
                        </li>
                        <li v-for="(it,idx) in item.secMenu" :key="idx" v-show="item.isSubShow" class="active1">
                            <router-link :to="it.path" tag="a">{
   {
   it.name}}</router-link>
                        </li>
                    </ul>
                </div>
            </transition>
        </div>
    </div>
</template>

<script>
    import axios from 'axios';

    export default {
   
        name: 'navigation-1',
        data() {
   
            return {
   
                token: '',
                navList: [{
   
                        title: '用户管理',
                        isSubShow: false,
                        className: 'icon-guanliyuan1',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [
                            {
   
                            name: '工号管理',
                            path: '/home/navigation-one/user'
                            }, 
                            // {
   
                            // name: '角色管理',
                            // path: '/home/navigation-one/role'
                            // }, 
                            // {
   
                            // name: '权限管理',
                            // path: '/home/navigation-one/user'
                            // }, 
                        ]


                    },
                    {
   
                        title: '资源管理',
                        isSubShow: false,
                        className: 'icon-ziyuan',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [
                            {
   
                                name: '我的收藏',
                                path: '/home/navigation-one/user'
                            },
                            {
   
                                name: '我的项目',
                                path: '/home/navigation-one/role'
                            }
                        ]

                    },
                    {
   
                        title: '综合管理',
                        isSubShow: false,
                        className: 'icon-zonghe',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [{
   
                                name: '划配管理',
                                path: '/home/navigation-one/user'
                            },
                            {
   
                                name: '数据信息',
                                path: '/home/navigation-one/role'
                            }
                        ]

                    },
                    {
   
                        title: '系统消息',
                        isSubShow: false,
                        className: 'icon-xiaoxi',
                        close: 'icon-close',
                        up: 'icon-zhedie',
                        secMenu: [{
   
                                name: '实时动态',
                                path: '/home/navigation-one/user'
                            },
                            {
   
                                name: '过去动态',
                                path: '/home/navigation-one/role'
                            }
                        ]
                    }
                ],
                currentSort: 0,
                pagetype: "index",
                fullWidth: true,
                dismenu: true
            }
        },
        mounted() {
   
            window.onresize = () => {
    //监听屏幕变化
                this.page_width();
            };
            this.page_width();
        },
        methods: {
   
            active(index) {
   
                this.currentSort = index;
            },
            changeTitleColor(index) {
   
                this.currentSort = index;
            },
            removeTitleColor(index) {
   
                this.currentSort = null;
            },
            handleToTitle(ind, item) {
   
                this.navList[ind].isSubShow = !this.navList[ind].isSubShow;
                if (this.navList[ind].isSubShow == true) {
   
                    this.navList[ind].close = 'icon-zhedie';
                } else {
   
                    this.navList[ind].close = 'icon-close';
                }
            },
            make_menu() {
    //点击导航图标
                this.dismenu = !this.dismenu;
            },
            page_width() {
    //获取屏幕宽度
                var screenWidth = window.screen.width;
                if (screenWidth <= 1024) {
   
                    this.fullWidth = false;
                } else {
   
                    this.fullWidth = true;
                }
            }
        }

    }
</script>

<style scoped>
    #main {
   
        background: #F0F6FF;
        font-size: 0.16rem;
    }

    #main .content {
   
        display: flex;
        flex-direction: row;
    }

    .content .admin_nav {
   
        min-height: 9.37rem;
        max-height: 1.3rem;
        padding: 0 !important;
        background: #364150;
        position: relative;

    }

    .content .admin_nav .admin_nav_site{
   
        height: 100vh;
    }

    .content .admin_nav .title {
   
        height: 1.39rem;
        line-height: 1.39rem;
        background: rgba(63, 73, 86, 1);
        color: #FFFFFF;
        text-align: center;
        font-size: 0.18rem;
        display: flex;
        justify-content: center;
    }

    .content .admin_nav .title div {
   
        padding: 0 0.03rem;
    }

    .content .admin_nav .title div:first-child i {
   
        font-size: 0.18rem;
    }

    .content .admin_nav ul .active {
   
        background: rgba(68, 81, 99, 1);
    }

    .content .admin_nav ul .active1 a.router-link-active {
   
        color: #fff;
    }

    .content .admin_nav ul li {
   
        height: 0.6rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        font-size: 0.18rem;
    }

    .content .admin_nav ul li a {
   
        color: #cecdc5;
        cursor: pointer;
    }

    .content .admin_nav ul li:first-child {
   
        font-size: 0.2rem;
        height: 0.64rem;
        display: flex;
        flex-direction: row;
        align-items: center;
        color: #BEC5C0;
        cursor: pointer;
    }

    .content .admin_nav ul li:first-child div {
   
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #BEC5C0;
    }

    .content .admin_nav ul li:first-child .left_icon {
   
        width: 22%;
    }

    .content .admin_nav ul li:first-child .left_icon i {
   
        color: #1296DB;
    }

    .content .admin_nav ul li:first-child .middle {
   
        width: 56%;
        display: flex;
        justify-content: flex-start;
    }

    .content .admin_nav ul li:first-child .right_icon {
   
        width: 22%;
    }

    .admin_nav .admin .middle:hover {
   
        color: #fff;
    }

    .admin_nav .admin .right_icon i:hover {
   
        color: #fff;
    }

    .admin_nav .admin .middle.router-link-active {
   
        color: #fff;
    }

    .content .admin_nav_position {
   
        position: absolute;
        z-index: 3000;
    }

    .content .admin_content {
   
        padding: 0 !important;
    }

    .content .admin_content .admin_header {
   
        width: 100%;
        height: 0.6rem;
        background: #364150;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .content .admin_content .admin_header .H5_item {
   
        width: 0.4rem;
        height: 0.4rem;
        border-radius: 0.2rem;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-left: 0.2rem;
    }

    .content .admin_content .admin_header .H5_item i {
   
        font-size: 0.22rem;
        color: #fff;
    }

    .content .admin_content .admin_header .user {
   
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }

    .content .admin_content .admin_header .user .userHead {
   
        height: 0.6rem;
        display: flex;
        flex-direction: row;
        align-items: center;
        color: #fff;
        font-size: 0.18rem;
    }

    .content .admin_content .admin_header .user .userHead span {
   
        padding: 0 0.05rem;
    }

    .content .admin_content .admin_header .user .userHead span:nth-child(1) {
   
        position: relative;
    }

    .content .admin_content .admin_header .user .userHead span img {
   
        width: 0.4rem;
        height: 0.4rem;
        border-radius: 50%;
    }

    .content .admin_content .admin_header .user .userHead span input {
   
        width: 0.4rem;
        height: 0.4rem;
        position: absolute;
        overflow: hidden;
        opacity: 0;
        cursor: pointer;
    }

    .content .admin_content .admin_header .user .logOut {
   
        color: #fff;
        margin-left: 0.12rem;
        margin-right: 0.5rem;
    }

    .content .admin_content .admin_header .user .logOut i {
   
        color: #1296DB;
        font-size: 0.24rem;
        cursor: pointer;
    }

    .toggle-cart-enter-active {
   
        transition: all 0.4s linear;
    }

    .toggle-cart-leave-active {
   
        transition: all 0.4s linear;
    }

    .toggle-cart-enter {
   
        transform: translateX(-200%);
    }

    .toggle-cart-leave-active {
   
        transform: translateX(-200%);
    }
</style>

注:

1、css样式中的rem换算成px为对应的rem值*100,如:font-size:0.24rem;=> font-size:24px;

2、文章中涉及到的iconfont类名是因为引用了阿里图标,如遇到不知道如何引用的可以翻阅博文→ [https://developer.aliyun.com/article/1613119)

3、关于router-link对应的跳转,如有小伙伴不太清楚如何使用vue-router配置路由的可以翻阅博文→[https://developer.aliyun.com/article/1613120)

Ending(〃'▽'〃)!

相关文章
|
10天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
6天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2506 14
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
6天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1519 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
8天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
531 13
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19282 30
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18836 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17524 13
Apache Paimon V0.9最新进展
|
8天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
458 48
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
1天前
|
云安全 存储 运维
叮咚!您有一份六大必做安全操作清单,请查收
云安全态势管理(CSPM)开启免费试用
354 4
叮咚!您有一份六大必做安全操作清单,请查收
|
2天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。