sidebar.vue 5.28 KB
<script>
    var store = require('../../../vuex/store');
    var MT = require('../../../vuex/mutation-types');

    module.exports = {
        store: store,
        data: function () {
            return {
                // 数据传输
                menuList: {},
                // 显示的菜单的信息
                showObj: {
                    oneGuid: '',// 一级显示的
                    twoGuid: ''// 二级显示的
                },
                // index
                index: 1
            };
        },
        methods: {
            // 获得当前用户信息
            getOnlineUser: function () {
                var self = this;
                if (self.$store.state.user.curMenuRole != null && self.$store.state.user.curMenuRole.oneMenus != null) {
                    self.getRoleMenu();
                } else {
                    Ajax.get('/online').then(function (resp) {
                        self.$store.dispatch(MT.SET_ONLINE_USER, resp.data);
                        self.getRoleMenu();
                    });
                }
            },
            // 获得菜单的数据权限
            getRoleMenu: function () {
                var self = this;
                self.$set('menuList', self.$store.state.user.curMenuRole);
                // 刚登录的时候,默认把第一个大菜单展开
                if (self.menuList != null && self.menuList.oneMenus != null) {
                    for (var key in self.menuList.oneMenus) {
                        // 一级菜单
                        self.showObj.oneGuid = self.menuList.oneMenus[key].guid;
                        // 一级菜单下的第1个二级菜单
                        self.showObj.twoGuid = self.getFirtMenu(self.showObj.oneGuid);

                        break;
                    }
                }
            },
            // 点击一级菜单
            clickOne: function (oneGuid) {
                var self = this;
                if (oneGuid == self.showObj.oneGuid) {
                    self.showObj.oneGuid = "";
                    self.showObj.twoGuid = "";
                } else {
                    self.showObj.oneGuid = oneGuid;
                    self.showObj.twoGuid = self.getFirtMenu(oneGuid);
                }
            },
            // 点击二级菜单
            clickTow: function (towGuid, url) {
                var self = this;
                self.showObj.twoGuid = towGuid;
                console.log('ddd')
                self.getEtokens();
                if (towGuid == '74fb9234008b4cefb2437203bbfb21c3') {

                    self.getEtokens();
                }
                self.$store.dispatch(MT.SET_PROCESS, url);
            },
            // invoice:function(towGuid){
            //     var self = this;
            //     self.showObj.twoGuid = towGuid;
            //     self.getEtokens();
            // },
            // 获得当前用户信息
            getEtokens: function () {
                var self = this;
                Ajax.post('/user/getUserEitoken').then(function (resp) {
                    if (resp.data.errorCode == 0) {
                        window.open('http://test.csylcloud.com:8086/#/jump?access_token=' + resp.data.data, '_self')
                    } else {
                        layer.msg('未设置发票管理权限');
                    }
                });
            },
            // 获得某个一级菜单下第一个对象的guid
            getFirtMenu: function (oneGuid) {
                var self = this;

                var twoGuid = "";
                if (self.menuList.twoMenus[oneGuid] != null) {
                    for (var key in self.menuList.twoMenus[oneGuid]) {
                        // 一级菜单
                        twoGuid = self.menuList.twoMenus[oneGuid][key].guid;
                        break;
                    }
                }
                return twoGuid;
            }
        },
        created: function () {
            // 获得菜单的权限
            this.getOnlineUser();
        }
    };
</script>
<template>
    <!--供应商信息是否完整:    v-if="$store.state.user.showMenu=='Y'"   -->
    <div class="menu-list menu-list-sub" style="min-height: 500px;background: 0;"
         v-if="$store.state.user.showMenu=='Y'">
        <ul class="has-sub" style="background-color: #fff;">
            <!--循环的代码段-->
            <li :class='one.guid==showObj.oneGuid?"active":""' v-for="one in menuList.oneMenus">
                <!--一级菜单:相当于点击该组的第一个菜单-->
                <a class="menu-tit" v-on:click="clickOne(one.guid)">{{one.name}}</a>
                <!--二级菜单:子菜单-->
                <ul>
                    <li v-for="two in menuList.twoMenus[one.guid]">
                        <!--<a :class="two.guid==showObj.twoGuid?'active':''" v-on:click="invoice(two.guid)" v-if=" two.guid == '74fb9234008b4cefb2437203bbfb21c3'"-->
                        <!--style='padding:8px 4px;'>{{two.name}}</a>-->
                        <a :class="two.guid==showObj.twoGuid?'active':''"
                           v-on:click="clickTow(two.guid,two.syscalldescribe1)"
                           v-link="two.syscalldescribe1">{{two.name}}</a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
</template>