Vue 增刪改查 demo


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="../../Scripts/jquery-3.3.1.js"></script>
    <script src="../../Scripts/vue.js"></script>
</head>
<body>

    <div id="app">
        <form>
            名稱:<input type="text" name="giftPack.name" v-model="giftPack.name" />
            是否開啟:<input type="radio" name="giftPack.isEnabled" value="true" v-model="giftPack.isEnabled" />開啟<input type="radio" name="giftPack.isEnabled" value="false" v-model="giftPack.isEnabled" />關閉
            
        </form>
        <div>
            <input type="button" value="新增"  v-on:click="add"/>
            <table>
                <thead>
                    <tr>
                        <th>獎勵類型</th>
                        <th>獎勵標識</th>
                        <th>數量</th>
                        <th></th>
                    </tr>
                </thead>
                <tbody>
                    <template v-for="giftItem in giftPack.giftPackItems">
                        <tr>
                            <td>{{giftItem.type}}</td>
                            <td>{{giftItem.desc}}</td>
                            <td>{{giftItem.quantity}}</td>
                            <td>
                                <a href="#" v-on:click="edit(giftItem)">編輯</a>
                                <a href="#" v-on:click="deleteGiftItem(giftItem)">刪除</a>
                            </td>
                        </tr>
                    </template>
                </tbody>
               
               
            </table>


            <div v-show="isShow">
                <div>
                    獎勵類型:<select v-model="giftPackItem.type">
                                <option value="">-請選擇-</option>
                                <option>紅包</option>
                                <option>免費提現次數</option>
                            </select>
                </div>
                <div>
                    獎勵標識:<select v-model="giftPackItem.desc">
                        <option value="">-請選擇-</option>
                        <option>增加</option>
                        <option>增加</option>
                    </select>
                </div>
                <div>
                    數量:<input type="text" v-model="giftPackItem.quantity" />
                </div>
                
                <div>
                    <input type="button" value="保存" v-on:click="save(giftPackItem)" />
                </div>
            </div>
        </div>
    </div>
    <script>
       



        var data = {
            isShow: false,
            giftPack: {
                name: "",
                isEnabled: true,
                giftPackItems: [
                    {
                        id:1,
                        type: "紅包",
                        desc: "20元",
                        quantity:1
                    },
                    {
                        id:2,
                        type: "免費提現次數",
                        desc: "增加",
                        quantity: 1
                    }
                ]
            },
            giftPackItem: {
                id: 0,
                type:"",
                desc: "",
                quantity: 1
            },
            editGiftPackItem: {
                id: 0,
                type: "",
                desc: "",
                quantity: 1
            }

        }
        var vue = new Vue({
            el: "#app",
            data: data,
            methods: {
                add: function () {
                    this.isShow = true;
                },
                edit: function (me) {
                    this.isShow = true;

                    this.giftPackItem = this.initItemForUpdate(me);
                },
                // 彈出修改數據的對話框時,使用對象的深拷貝
                initItemForUpdate(p, c) {
                    c = c || {};
                    for (var i in p) {
                        // 屬性i是否為p對象的自有屬性
                        if (p.hasOwnProperty(i)) {
                            // 屬性i是否為復雜類型
                            if (typeof p[i] === 'object') {
                                // 如果p[i]是數組,則創建一個新數組
                                // 如果p[i]是普通對象,則創建一個新對象
                                c[i] = Array.isArray(p[i]) ? [] : {};
                                // 遞歸拷貝復雜類型的屬性
                                this.initItemForUpdate(p[i], c[i]);
                            } else {
                                // 屬性是基礎類型時,直接拷貝
                                c[i] = p[i];
                            }
                        }
                    }
                    return c;
                },
                save: function (me) {

                    if (me.id == 0) {
                        this.giftPackItem.id = this.giftPack.giftPackItems.length + 1;
                        this.giftPack.giftPackItems.push(this.giftPackItem);
                        this.giftPackItem = {
                            id: 0,
                            type: "",
                            desc: "",
                            quantity: 1
                        };
                    }
                    else {
                        
                        for (var i = 0; i < this.giftPack.giftPackItems.length; i++) {
                            if (this.giftPack.giftPackItems[i].id == me.id) {
                                this.giftPack.giftPackItems[i] = me;
                                break;
                            }
                        }


                        this.giftPackItem = {
                            id: 0,
                            type: "",
                            desc: "",
                            quantity: 1
                        };
                    }
                    
                    this.isShow = false;
                },
                deleteGiftItem: function (me) {
                    for (var i = 0; i < this.giftPack.giftPackItems.length; i++) {
                        if (this.giftPack.giftPackItems[i].id == me.id) {
                            this.giftPack.giftPackItems.splice(i, 1);
                            break;
                        }
                    }
                }
                
            }
        });




    </script>
</body>
</html>

 參考地址:https://blog.csdn.net/liuyan55/article/details/79311819


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM