define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {

            var navIndex = new Vue({
                el: '#app',
                data: function() {
                    return { 
                        nav: [],
                        openIds:[],
                        openIco:"/assets/addons/jdgw/images/dedeexplode.gif",
                        closeIco:"/assets/addons/jdgw/images/dedecontract.gif"
                    }
                },
                mounted() {
                    var that = this
                    that.navList(); 
                },
                updated(){
                    var that = this
                    $(function(){ 
                    　　$(".btn-diyedit, .btn-diyadd").data("end", function(){
                            that.navList();
                        });
                　　}); 
                },
                methods:{
                    open(viewIndex) {
                        this.nav[viewIndex].open = !this.nav[viewIndex].open
                        this.openIds = [];
                        for (var i=0;i<this.nav.length;i++){ 
                            if(this.nav[i].open){
                                this.openIds.push(this.nav[i].id)
                            }
                        } 
                    },
                    del(id){
                        var that = this;
                        Layer.confirm("确定删除此栏目？",
                            {icon: 3, title: __('Warning'), shadeClose: true},
                            function (index) {
                                Fast.api.ajax({url:'jdgw/nav/del', data:{ids:id}}, function (data, ret) {
                                    that.navList();
                                });
                                Layer.close(index);
                            }
                        );
                    },
                    editSort(id, e){
                        var that = this;
                        var weigh = e.target.value;
                        $.ajax({
                            type: 'POST',
                            url: 'jdgw/nav/editWeigh',
                            data: {weigh: weigh, id: id},
                            success: function(res) {               
                               that.navList()
                        }});
                    },
                    navList(){
                        var that = this;
                        $.ajax({
                            type: 'POST',
                            data:{openIds:that.openIds},
                            url: 'jdgw/nav/index',
                            success:function(res){
                                that.nav = res.data
                            }
                        });
                    },
                }
            })     

        },
        add: function () {
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
            
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            } 
        }
    };
    return Controller;
});