6、前后端分离开发——前端学习

前端代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Vue.js-访问API接口数据-蓝墨云班课练习</title>
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=no">
        
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <!-- 通过CDN引入Vue.js -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <!-- 通过CDN引入axios -->
        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
        <style type="text/css">
            body {
                background-color: #eee;
            }

            .top {
                width: 80%;
                margin: 0 auto;
                display: flex;
                justify-content: space-between;
            }
           
            
            hr {
                width: 80%;
                color: #efefef;
            }

            .container {
                width: 80%;
                margin: 0 auto;
                display: flex;
                flex-wrap: wrap;
                padding-left: 20px;
                padding-top: 10px;
            }

            .container1 {
                width: 80%;
                margin: 0 auto;
                display: flex;
                flex-wrap: wrap;
                padding-left: 20px;
                padding-top: 10px;
                -webkit-filter: grayscale(100%);
                -moz-filter: grayscale(100%);
                -ms-filter: grayscale(100%);
                -o-filter: grayscale(100%);
                
                filter: grayscale(100%);
                
                filter: gray;
            }

            .card {
                width: 190px;
                display: flex;
                flex-direction: column;
                border: 1px solid #eee;
                margin-right: 20px;
                margin-bottom: 10px;
                background-color: #fff;
                justify-content: center;
                padding-left: 5px;
                padding-right: 5px;
                padding-top: 5px;
            }

            

            p {
                font-size: 12px;
                margin-bottom: 5px;
            }

            .teacher {
                display: flex;
                justify-content: space-between;
            }

            .left {
                display: flex;
            }

            .avatar img {
                width: 30px;
                height: 30px;
                border-radius: 50%;
                margin-right: 5px;
            }

            .code {
                color: #00BBDD;
                margin-top: 5px;
            }
            .cover{
                 overflow: hidden;
            }

            .fang {
                width: 100%;
                height:100%;
                /* 沿Y轴翻转180度 */
                /* transform:rotateY(180deg); */
                /* 100%填充背景图 */
                background-size: 100% 100%;
                /* 两秒完成进入离开动画 */
                 transition: all 2s;
            
            }

            .fang:hover {
                /* 沿Y轴翻转180度 */
                /* transform:rotateY(180deg); */
                /* 背景图放大 */
                background-size:130% 130%;
                /* 透明度变为0.5 */
                opacity: 0.5;
                transform: scale(1.4);
                /* 鼠标手型 */
                cursor: pointer;
            }

            
        </style>
    </head>
    <body>
        <div id="app">
        
            <div class="top">
                <p>进行中的班课</p>
                <p>{{courses.length}}个进行中的班课</p>
            </div>
            <hr>
            <div class="container">
                <div class="card" v-for="(course, index) in courses" :key="index">
                    <div class="cover">
                     <img :src="'img/'+course.cover" class="fang">
                    </div> 
                    <div class="course-class">
                        <p>{{course.courseClass}}</p>
                    </div>
                    <div class="course-name">
                        <p>{{course.courseName}}</p>
                    </div>
                    <div class="teacher">
                        <div class="left">
                            <div class="avatar">
                                <img :src="'img/'+course.avatar">
                            </div>
                            <div class="username">
                                <p class="code">{{course.username}}</p>
                            </div>
                        </div>
                        <div class="course-code">
                            <p class="code" v-if="loginUserId === course.userId">{{course.courseCode}}</p>
                        </div>
                    </div>
                </div>
            </div>
            <div class="top">
                <p>已结束的班课</p>
                <p>{{finishcourses.length}}个结束的班课</p>
            </div>
            <hr>
            <div class="container1">
                <div class="card" v-for="(course, index) in finishcourses" :key="index">
                    <div class="cover">
                        <img :src="'img/'+course.cover" >
                    </div>
                    <div class="course-class">
                        <p>{{course.courseClass}}</p>
                    </div>
                    <div class="course-name">
                        <p>{{course.courseName}}</p>
                    </div>
                    <div class="teacher">
                        <div class="left">
                            <div class="avatar">
                                <img :src="'img/'+course.avatar" >
                            </div>
                            <div class="username">
                                <p class="code">{{course.username}}</p>
                            </div>
                        </div>
                        <div class="course-code">
                            <p class="code" v-if="loginUserId === course.userId">{{course.courseCode}}</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            var app = new Vue({
                el: '#app',
                data: {
                    loginUserId: 2,
                    courses: [],
                    finishcourses: []
                },
                created: function() {
                    var _this = this;
                    axios.all([
                            axios.get('http://localhost:8080/web/courses'),
                            axios.get('http://localhost:8080/web/courses1')
                        ])
                        .then(axios.spread(function(courses, finishcourses) {
                            console.log('User', courses.data);
                            _this.courses = courses.data;
                            console.log('Repositories', finishcourses.data);
                            _this.finishcourses = finishcourses.data;
                        }))

                }

            })
        </script>
    </body>
</html>

运行结果:


image.png

image.png

上面的内容都是从数据库导出的,然后设置了一些css

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,018评论 1 45
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,799评论 1 32
  • 无数成功人士的成功学,让普通人趋之若鹜,也让人相信只要努力,就会成功。 盖茨在大学时毅然退学,开始创业,第一笔生意...
    豆子121阅读 1,176评论 2 2
  • 最近看到群里一个学弟恼羞成怒的聊天信息,私聊他后了解到部分事情的经过。 大概是学生干部们觉得平时工作比较辛苦,于是...
    耀之浩然阅读 4,037评论 0 4
  • 甲辰之日平旦,丹书拜精宫玉女右灵飞一旬上符,沐浴入室,向本命六拜,叩齿十二通,顿服一旬十符,祝如上法。毕,平坐闭目...
    苏白杞阅读 6,179评论 3 11