07-利用Vue指令做一個簡單的學生信息管理系統(tǒng)

需求:

利用Vue指令編寫一個簡單的學生管理系統(tǒng)。
要求: 能夠展示學生信息, 能夠?qū)W生信息進行增刪改查

效果:

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>學生信息管理系統(tǒng)</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="請輸入分數(shù)" 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>分數(shù)</th>
            <th>時間</th>
            <th>操作</th>
        </tr>
        <!--利用v-for指令動態(tài)生成學生信息-->
        <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>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 基于Vue的一些資料 內(nèi)容 UI組件 開發(fā)框架 實用庫 服務(wù)端 輔助工具 應(yīng)用實例 Demo示例 element★...
    嘗了又嘗閱讀 1,282評論 0 1
  • 大多數(shù) Nginx 新手都會頻繁遇到這樣一個困惑,那就是當同一個location配置塊使用了多個 Nginx 模塊...
    SkTj閱讀 8,231評論 0 12
  • 自愈功能 前不久買了一把新的水果小刀, 老妹見到就說, “這是塑料的吧?怎么切水果呀?” 兩天后, 姐姐我拿著小刀...
    企鵝的觀察日志閱讀 172評論 1 1
  • 誠信星哥1閱讀 1,769評論 0 0
  • 億萬富翁雷,克洛克是麥當勞的創(chuàng)始人,在一次采訪中,主持人問他是否喜歡免費的午餐,克洛克說:“我從不吃免費的午餐!”...
    繆斯之子閱讀 1,585評論 37 47

友情鏈接更多精彩內(nèi)容