美文网首页
07-利用Vue指令做一个简单的学生信息管理系统

07-利用Vue指令做一个简单的学生信息管理系统

作者: 仰望_IT | 来源:发表于2020-04-25 22:40 被阅读0次

    需求:

    利用Vue指令编写一个简单的学生管理系统。
    要求: 能够展示学生信息, 能够对学生信息进行增删改查

    效果:

    image

    代码:

    <style>
            *{
                margin: 0;
                padding: 0;
            }
            #app{
                width: 800px;
                margin: 50px auto;
            }
            table{
                width: 100%;
                background: #000;
            }
            table tr{
                background: #fff;
            }
            table tr input{
                width: 100%;
                height: 42px;
                text-align: center;
            }
            form{
                width: 100%;
                height: 30px;
                display: flex;
                justify-content: space-between;
            }
            p{
                text-align: center;
                font-size: 30px;
                margin-bottom: 50px;
            }
            .operate{
                width: 100px;
                height: 100%;
                text-align: center;
            }
            .operate a{
                text-decoration: none;
            }
            .operate a:first-child{
                margin-right: 5px;
            }
        </style>
    
    <div id="app">
        <p>学生信息管理系统</p>
        <form v-show="isShow">
            <input type="text" placeholder="请输入序号" v-model="person.id">
            <input type="text" placeholder="请输入姓名" v-model="person.name">
            <input type="text" placeholder="请输入分数" v-model="person.score">
            <input type="submit" value="增加" @click.prevent="add">
            <input type="submit" value="查询" @click.prevent="query">
        </form>
        <table>
            <tr>
                <th>序号</th>
                <th>姓名</th>
                <th>分数</th>
                <th>时间</th>
                <th>操作</th>
            </tr>
            <!--利用v-for指令动态生成学生信息-->
            <tr v-for="(person, index) in persons">
                <td><input type="text" v-model="person.id" :disabled="isDisabled"></td>
                <td><input type="text" v-model="person.name" :disabled="isDisabled"></td>
                <td><input type="text" v-model="person.score" :disabled="isDisabled"></td>
                <td><input type="text" :value="person.time | dateFormart" disabled></td>
                <td class="operate">
                    <a href="#" @click.prevent="edit">编辑</a>
                    <a href="#" @click.prevent="del(index)">删除</a>
                    <br>
                    <a href="#" @click.prevent="toggle">更多操作</a>
                </td>
            </tr>
        </table>
    </div>
    
    <script>
        // 格式化时间
        Vue.filter('dateFormart', function (value, fmstr) {
            let date = new Date(value);
            let year = date.getFullYear();
            let month = date.getMonth() + 1 + '';
            let day = date.getDate() + '';
            let hour = date.getHours() + '';
            let minute = date.getMinutes() + '';
            let second = date.getSeconds() + '';
            // 如果传入的时间格式是yyyy-MM-dd, 就只显示年-月-日
            if (fmstr && fmstr === 'yyyy-MM-dd'){
                return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
            }
            // 否则就显示年-月-日 时:分:秒
            return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')} ${hour.padStart(2, '0')}:${minute.padStart(2, '0')}:${second.padStart(2, '0')}`;
        });
        new Vue({
            el: '#app',
            data: {
                isDisabled: true,
                isShow: false,
                // 存放学生信息
                persons: [{
                    id: '1',
                    name: 'zs',
                    score: '99',
                    time: Date.now()
                },{
                    id: '2',
                    name: 'ls',
                    score: '88',
                    time: Date.now()
                },{
                    id: '3',
                    name: 'ww',
                    score: '77',
                    time: Date.now()
                }], 
                // 一个临时记录学生信息的对象
                person: {
                    id: '',
                    name: '',
                    score: ''
                }
            },
            methods: {
                // 用于编辑的方法
                edit(){
                    this.isDisabled = !this.isDisabled;
                },
                // 用于删除的方法
                del(index){
                    this.persons.splice(index, 1);
                },
                // 用于更多操作的方法
                toggle(){
                    this.isShow = !this.isShow;
                },
                // 用于增加学生的方法
                add(){
                    this.person.time = Date.now();
                    this.persons.push(this.person);
                    this.person = {
                        id: '',
                        name: '',
                        score: ''
                    }
                },
                // 用于查询信息的方法
                query(){
                    let newPerson = this.persons.filter( (person) => {
                        if (this.person.score === person.score){
                            return true;
                        } else if (this.person.id === person.id){
                            return true;
                        } else if (this.person.name === person.name){
                            return true;
                        } 
                    });
                    this.persons = newPerson;
                    this.person = {
                        id: '',
                        name: '',
                        score: ''
                    }
                }
            }
        });
    </script>
    

    相关文章

      网友评论

          本文标题:07-利用Vue指令做一个简单的学生信息管理系统

          本文链接:https://www.haomeiwen.com/subject/hcnlwhtx.html