whychdw
2021-06-25 4178e4a8122d93db679c58b0670fae39640e4478
修改内容
7个文件已修改
668 ■■■■ 已修改文件
src/assets/js/apis/pageSetting/index.js 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/tools/getPageMenu.js 320 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/PageMenu.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/PageNav.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/jobManage/planManage.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/pageSetting/components/cardWrapper.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/pageSetting/components/menuSetting.vue 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/pageSetting/index.js
@@ -1,7 +1,30 @@
import realTime from './realTime'   // 实时页面
import axios from 'axios';
import realTime from './realTime';   // 实时页面
import threeHomeSetting from "@/assets/js/apis/pageSetting/threeHomeSetting";
export default {
    realTime,
    threeHomeSetting
    threeHomeSetting,
    /**
     * 获取页面的导航信息
     * @returns {AxiosPromise}
     */
    getPageMenu() {
        return axios({
            method: 'post',
            url: 'MenuAction!getAllMenus',
            data: null,
        });
    },
    /**
     * 更新数据
     * @param params
     * @returns {AxiosPromise}
     */
    updatePageMenu(params) {
        return axios({
            method: 'post',
            url: 'MenuAction!updateMenus',
            data: 'json='+JSON.stringify(params)
        });
    }
}
src/assets/js/tools/getPageMenu.js
@@ -11,6 +11,12 @@
            icon: "el-icon-s-home",
            noChild: true,
            closable: false,
            id: 1,
            menuId: 0,
            enableduse: true,
            ord: 1,
            level: 1,
            disabled: true
        },
        // {
        //     label: "大屏数据监控",
@@ -62,36 +68,68 @@
            icon: "el-icon-s-data",
            closable: false,
            noChild: false,
            id: 2,
            menuId: 2,
            enableduse: true,
            ord: 2,
            level: 1,
            childrens: [
                {
                    label: "实时监控",
                    name: "movingRingSysteRrealTime",
                    src: "#/moving-ring-system",
                    closable: true
                    closable: true,
                    id: 2001,
                    menuId: 2,
                    enableduse: true,
                    ord: 1,
                    level: 2,
                    disabled: true
                },
                {
                    label: "历史数据",
                    name: "history",
                    src: "#/history",
                    closable: true
                    closable: true,
                    id: 2002,
                    menuId: 2,
                    enableduse: true,
                    ord: 2,
                    level: 2,
                    disabled: true
                },
                {
                    label: '历史数据管理',
                    name: 'historyDataMager',
                    src: '#/dataMager/historyInfo',
                    closable: true
                    closable: true,
                    id: 2003,
                    menuId: 2,
                    enableduse: true,
                    ord: 3,
                    level: 2,
                },
                {
                    label: '标准曲线',
                    name: 'standardLine',
                    src: '#/dataTest/standardLine',
                    closable: true
                    closable: true,
                    id: 2004,
                    menuId: 2,
                    enableduse: true,
                    ord: 4,
                    level: 2,
                },
                {
                    label: '设备状态查询',
                    name: 'btsStatusTest',
                    src: '#/dataMager/btsStatus',
                    closable: true
                    closable: true,
                    id: 2005,
                    menuId: 2,
                    enableduse: true,
                    ord: 5,
                    level: 2,
                }
            ]
        },
@@ -102,33 +140,58 @@
            icon: "el-icon-s-help",
            closable: false,
            noChild: false,
            id: 3,
            menuId: 3,
            enableduse: true,
            ord: 3,
            level: 1,
            childrens: [
                {
                    label: "电源信息配置",
                    name: "SupplyPowerMager",
                    src: "#/dataMager/powerMager",
                    // permitName: 'batttest_data_query_permit',
                    closable: true
                    closable: true,
                    id: 3001,
                    menuId: 3,
                    enableduse: true,
                    ord: 1,
                    level: 2,
                },
                {
                    label: "电池信息管理",
                    name: "battGroupMager",
                    src: "#/dataMager/battGroupMager",
                    permitName: 'batttest_data_query_permit',
                    closable: true
                    closable: true,
                    id: 3002,
                    menuId: 3,
                    enableduse: true,
                    ord: 2,
                    level: 2,
                },
                {
                    label: "机房定位信息管理",
                    name: "homeAddressInfoManage",
                    src: "#/dataMager/homeAddressInfoManage",
                    permitName: 'batt_map_edit_permit',
                    closable: true
                    closable: true,
                    id: 3003,
                    menuId: 3,
                    enableduse: true,
                    ord: 3,
                    level: 2,
                },
                {
                    label: "电池信息统计分析",
                    name: 'produceTotal',
                    src: "#/dataMager/produceTotal",
                    closable: true,
                    id: 3004,
                    menuId: 3,
                    enableduse: true,
                    ord: 4,
                    level: 2,
                },
                {
                    label: "后台线程管理",
@@ -136,13 +199,24 @@
                    src: '#/dataMager/threadMager',
                    permitName: 'batttest_data_query_permit',
                    closable: true,
                    id: 3005,
                    menuId: 3,
                    enableduse: true,
                    ord: 5,
                    level: 2,
                    disabled: true
                },
                {
                    label: "机房状态查询",
                    name: "powercutMager",
                    src: "#/dataMager/powercut",
                    permitName: 'batttest_data_query_permit',
                    closable: true
                    closable: true,
                    id: 3006,
                    menuId: 3,
                    enableduse: true,
                    ord: 6,
                    level: 2,
                },
                // {
                //   label: "内组测试",
@@ -161,13 +235,24 @@
                    name: "batteryMager",
                    src: "#/batteryMager",
                    permitName: 'batttest_data_query_permit',
                    closable: true
                    closable: true,
                    id: 3007,
                    menuId: 3,
                    enableduse: true,
                    ord: 7,
                    level: 2,
                },
                {
                    label: '设备工作状态',
                    name: "deviceWorkState",
                    src: '#/device-work-state',
                    closable: true
                    closable: true,
                    id: 3008,
                    menuId: 3,
                    enableduse: true,
                    ord: 8,
                    level: 2,
                    disabled: true
                }
            ]
        },
@@ -178,64 +263,114 @@
            icon: "el-icon-message-solid",
            closable: false,
            noChild: false,
            id: 4,
            menuId: 4,
            enableduse: true,
            ord: 4,
            level: 1,
            childrens: [
                {
                    label: "电源实时告警",
                    name: "powerRealtimeInfo",
                    src: "#/powerRealtimeInfo",
                    closable: true
                    closable: true,
                    id: 4001,
                    menuId: 4,
                    enableduse: true,
                    ord: 1,
                    level: 2,
                },
                {
                    label: "电源历史告警",
                    name: "powerHistoryInfo",
                    src: "#/powerHistoryInfo",
                    closable: true
                    closable: true,
                    id: 4002,
                    menuId: 4,
                    enableduse: true,
                    ord: 2,
                    level: 2,
                },
                {
                    label: "电池告警实时查询",
                    name: "batteryrTimequery",
                    src: "#/batteryrTimequery",
                    permitName: 'batt_alm_query_permit',
                    closable: true
                    closable: true,
                    id: 4003,
                    menuId: 4,
                    enableduse: true,
                    ord: 3,
                    level: 2,
                },
                {
                    label: "电池告警历史查询",
                    name: "batteryrHistoryquery",
                    src: "#/batteryrHistoryquery",
                    permitName: "batt_alm_query_permit",
                    closable: true
                    closable: true,
                    id: 4004,
                    menuId: 4,
                    enableduse: true,
                    ord: 4,
                    level: 2,
                },
                {
                    label: "设备告警实时查询",
                    name: "deviceTimequery",
                    src: "#/deviceTimequery",
                    permitName: "dev_alm_query_permit",
                    closable: true
                    closable: true,
                    id: 4005,
                    menuId: 4,
                    enableduse: true,
                    ord: 5,
                    level: 2,
                },
                {
                    label: "设备告警历史查询",
                    name: "deviceHistoryquery",
                    src: "#/deviceHistoryquery",
                    permitName: "dev_alm_query_permit",
                    closable: true
                    closable: true,
                    id: 4006,
                    menuId: 4,
                    enableduse: true,
                    ord: 6,
                    level: 2,
                },
                {
                    label: "通信电源实时告警",
                    name: "powerBoxAlarm",
                    src: "#/powerBoxAlarm",
                    closable: true
                    closable: true,
                    id: 4007,
                    menuId: 4,
                    enableduse: true,
                    ord: 7,
                    level: 2,
                },
                {
                    label: "通信电源历史告警",
                    name: "powerBoxHistoryAlarm",
                    src: "#/powerBoxHistoryAlarm",
                    closable: true
                    closable: true,
                    id: 4008,
                    menuId: 4,
                    enableduse: true,
                    ord: 8,
                    level: 2,
                },
                {
                    label: "通信电源超时告警",
                    name: "powerAlarmTimeout",
                    src: "#/powerAlarmTimeout",
                    closable: true
                    closable: true,
                    id: 4009,
                    menuId: 4,
                    enableduse: true,
                    ord: 9,
                    level: 2,
                },
                // {
                //     label: "电池告警参数设置",
@@ -248,14 +383,24 @@
                    name: "powerCabinetSetting",
                    src: "#/powerCabinetSetting",
                    // permitName: "batt_alm_param_query_permit",
                    closable: true
                    closable: true,
                    id: 4010,
                    menuId: 4,
                    enableduse: true,
                    ord: 10,
                    level: 2,
                },
                {
                    label: "电池告警参数设置",
                    name: "devicepaSetting",
                    src: "#/devicepaSetting",
                    permitName: "batt_alm_param_query_permit",
                    closable: true
                    closable: true,
                    id: 4011,
                    menuId: 4,
                    enableduse: true,
                    ord: 10,
                    level: 2,
                }
            ]
        },
@@ -266,54 +411,99 @@
            icon: "el-icon-tickets",
            closable: false,
            noChild: false,
            id: 5,
            menuId: 5,
            enableduse: true,
            ord: 5,
            level: 1,
            childrens: [
                {
                    label: "电池组统计分析查询",
                    name: "eleAnalyse",
                    src: "#/reportStatistics/eleAnalyse",
                    closable: true,
                    id: 5001,
                    menuId: 5,
                    enableduse: true,
                    ord: 1,
                    level: 2,
                },
                {
                    label: "电池单体统计分析查询",
                    name: "eleMonomer",
                    src: "#/reportStatistics/eleMonomer",
                    closable: true,
                    id: 5002,
                    menuId: 5,
                    enableduse: true,
                    ord: 2,
                    level: 2,
                },
                {
                    label: "蓄电池组后评估",
                    name: "eleAssess",
                    src: "#/reportStatistics/eleAssess",
                    closable: true,
                    id: 5003,
                    menuId: 5,
                    enableduse: true,
                    ord: 3,
                    level: 2,
                },
                {
                    label: "落后单体查询",
                    name: "taskplan",
                    src: "#/reportStatistics/taskplan",
                    closable: true,
                    id: 5004,
                    menuId: 5,
                    enableduse: true,
                    ord: 4,
                    level: 2,
                },
                {
                    label: "电池实时状态查询",
                    name: "elestatus",
                    src: "#/reportStatistics/elestatus",
                    closable: true,
                    id: 5005,
                    menuId: 5,
                    enableduse: true,
                    ord: 5,
                    level: 2,
                },
                {
                    label: "电池续航能力历史查询",
                    name: "endure",
                    src: "#/reportStatistics/endure",
                    closable: true,
                    id: 5006,
                    menuId: 5,
                    enableduse: true,
                    ord: 6,
                    level: 2,
                },
                {
                    label: '通信电源报表',
                    name: 'powerReport',
                    src: '#/reportStatistics/powerReport',
                    closable: true,
                    id: 5007,
                    menuId: 5,
                    enableduse: true,
                    ord: 7,
                    level: 2,
                },
                {
                    label: "事件总表",
                    name: "eventTotalPage",
                    src: "#/dataMager/eventTotalPage",
                    closable: true,
                    id: 5008,
                    menuId: 5,
                    enableduse: true,
                    ord: 8,
                    level: 2,
                },
            ],
        },
@@ -324,18 +514,33 @@
            icon: "el-icon-s-cooperation",
            closable: false,
            noChild: false,
            id: 6,
            menuId: 6,
            enableduse: true,
            ord: 6,
            level: 1,
            childrens: [
                {
                    label: "BTS设备升级",
                    name: "btsUpgrade",
                    src: "#/jobManage/btsUpgrade",
                    closable: true
                    closable: true,
                    id: 6001,
                    menuId: 6,
                    enableduse: true,
                    ord: 1,
                    level: 2,
                },
                {
                    label: "放电计划管理",
                    name: "planManage",
                    src: "#/jobManage/planManage",
                    closable: true
                    closable: true,
                    id: 6002,
                    menuId: 6,
                    enableduse: true,
                    ord: 2,
                    level: 2,
                },
            ],
        },
@@ -346,39 +551,69 @@
            icon: "el-icon-user-solid",
            closable: false,
            noChild: false,
            id: 7,
            menuId: 7,
            enableduse: true,
            ord: 7,
            level: 1,
            childrens: [
                {
                    label: "用户信息管理",
                    name: "userInfoMager",
                    src: "#/userMager/userInfo",
                    permitName: "usr_query_permit",
                    closable: true
                    closable: true,
                    id: 7001,
                    menuId: 7,
                    enableduse: true,
                    ord: 1,
                    level: 2,
                },
                {
                    label: "用户人脸管理",
                    name: "userFaceManager",
                    src: "#/faceManager/userFaceManager",
                    closable: true
                    closable: true,
                    id: 7002,
                    menuId: 7,
                    enableduse: true,
                    ord: 2,
                    level: 2,
                },
                {
                    label: "权限管理",
                    name: "powerMager",
                    src: "#/userMager/powerMager",
                    permitName: "permit_query_permit",
                    closable: true
                    closable: true,
                    id: 7003,
                    menuId: 7,
                    enableduse: true,
                    ord: 3,
                    level: 2,
                },
                {
                    label: "包机组管理",
                    name: "baojiMager",
                    src: "#/userMager/baojiMager",
                    permitName: "usr_query_permit",
                    closable: true
                    closable: true,
                    id: 7004,
                    menuId: 7,
                    enableduse: true,
                    ord: 4,
                    level: 2,
                },
                {
                    label: "操作事件管理",
                    name: "operationRecordMager",
                    src: "#/userMager/operationRecord",
                    closable: true
                    closable: true,
                    id: 7005,
                    menuId: 7,
                    enableduse: true,
                    ord: 5,
                    level: 2,
                }
            ]
        },
@@ -389,25 +624,46 @@
            icon: "el-icon-s-management",
            closable: false,
            noChild: false,
            id: 8,
            menuId: 8,
            enableduse: true,
            ord: 8,
            level: 1,
            childrens: [
                {
                    label: "系统配置",
                    name: "realTimeSetting",
                    permitName: "batt_test_op_permit",
                    src: "#/pageSetting/realTime",
                    closable: true
                    closable: true,
                    id: 8001,
                    menuId: 8,
                    enableduse: true,
                    ord: 1,
                    level: 2,
                    disabled: true
                },
                {
                    label: "3D机房配置",
                    name: "threeHomeSetting",
                    src: "#/pageSetting/threeHomeSetting",
                    closable: true
                    closable: true,
                    id: 8002,
                    menuId: 8,
                    enableduse: true,
                    ord: 2,
                    level: 2,
                },
                {
                    label: "地图配置",
                    name: "chartMapSetting",
                    src: "#/pageSetting/chartMapSetting",
                    closable: true
                    closable: true,
                    id: 8003,
                    menuId: 8,
                    enableduse: true,
                    ord: 3,
                    level: 2,
                }
            ]
        }
src/components/PageMenu.vue
@@ -1,24 +1,5 @@
<template>
    <el-menu :default-active="acTabs">
        <template v-for="menu in permitMenu">
            <el-submenu v-if="menu.childrens" :key="menu.name" :index="menu.name">
                <template slot="title">
                    <i v-if="menu.icon" :class="menu.icon"></i>
                    <span>{{ menu.label }}</span>
                </template>
                <el-menu-item v-for="child in menu.childrens" :key="child.name" :index="child.name"
                              @click="select(child)">
                    {{ child.label }}
                </el-menu-item>
            </el-submenu>
            <el-menu-item v-else :index="menu.name" :key="menu.name" @click="select(menu)">
                <div class="submenu__title">
                    <i class="el-icon-s-home"></i>
                    <span slot="title">{{ menu.label }}</span>
                </div>
            </el-menu-item>
        </template>
    </el-menu>
    <page-nav :ac-tabs="acTabs" :menus="permitMenu" @select="select"></page-nav>
</template>
<script>
@@ -26,8 +7,10 @@
    isHasPermit
} from "@/assets/js/tools";
import getPageMenu from "@/assets/js/tools/getPageMenu";
import PageNav from "@/components/PageNav";
export default {
    components: {PageNav},
    props: {
        acTabs: {
            type: String,
@@ -36,10 +19,45 @@
    },
    data() {
        return {
            menus: getPageMenu(),
            menus: [],
        };
    },
    methods: {
        getPageMenu() {
            this.$apis.pageSetting.getPageMenu().then(res=>{
                let rs = JSON.parse(res.data.result);
                let data = [];
                if(rs.code == 1) {
                    data = rs.data;
                }
                this.menus = getPageMenu();
                this.changeMenus(this.menus, data);
            }).catch(error=>{
                console.log(error);
            });
        },
        changeMenus(menus, list) {
            menus.forEach(menu=>{
                let item = "";
                for(let i=0; i<list.length; i++) {
                    if(menu.id == list[i].id) {
                        item = list[i];
                        break;
                    }
                }
                if(item && item.childrens) {
                    item.childrens.forEach(children=>{
                        for(let i=0; i<menu.childrens.length; i++) {
                            let item2 = menu.childrens[i];
                            if(item2.id == children.id) {
                                item2.enableduse = children.enableduse;
                                break;
                            }
                        }
                    });
                }
            });
        },
        select(data) {
            if (data.name !== this.acTabs) {
                let url = window.location.hostname + ':8090/screen/index.html';
@@ -74,6 +92,7 @@
                    src: item.src,
                    icon: item.icon,
                    noChild: item.noChild ? true : false,
                    enableduse: item.enableduse,
                    closable: item.closable,
                };
                if (!tmp.noChild) {
@@ -93,7 +112,7 @@
        },
    },
    mounted() {
        this.getPageMenu();
    }
};
</script>
src/components/PageNav.vue
@@ -1,12 +1,84 @@
<template>
    <flex-layout direction="row">
    </flex-layout>
    <el-menu :default-active="acTabs">
        <template v-for="menu in rsMenus">
            <el-submenu v-if="menu.childrens" :key="menu.name" :index="menu.name">
                <template slot="title">
                    <i v-if="menu.icon" :class="menu.icon"></i>
                    <span>{{ menu.label }}</span>
                </template>
                <el-menu-item v-for="child in menu.childrens" :key="child.name" :index="child.name"
                              @click="select(child)">
                    {{ child.label }}
                </el-menu-item>
            </el-submenu>
            <el-menu-item v-else :index="menu.name" :key="menu.name" @click="select(menu)">
                <div class="submenu__title">
                    <i class="el-icon-s-home"></i>
                    <span slot="title">{{ menu.label }}</span>
                </div>
            </el-menu-item>
        </template>
    </el-menu>
</template>
<script>
export default {
    name: 'PageNav',
    props: {
        acTabs: {
            type: String,
            default: ""
        },
        menus: {
            type: Array,
            default() {
                return []
            }
        },
    },
    data() {
        return {
        }
    },
    methods: {
        select(data) {
            this.$emit('select', data);
        }
    },
    computed: {
        rsMenus() {
            let rs = [];
            let menus = this.menus;
            menus.forEach(menu=>{
                if(menu.enableduse) {
                    let tmp = {};
                    Object.keys(menu).forEach(key=>{
                       if(key != 'childrens') {
                           tmp[key] = menu[key];
                       }
                    });
                    if(menu.childrens) {
                        tmp.childrens = [];
                        menu.childrens.forEach(children=>{
                            if(children.enableduse) {
                                tmp.childrens.push(children);
                            }
                        });
                    }
                    rs.push(tmp);
                }
            });
            rs = rs.filter(item=>{
                if(item.noChild || item.childrens.length>0) {
                    return true;
                }else {
                    return false;
                }
            });
            return rs;
        }
    },
}
</script>
src/pages/jobManage/planManage.vue
@@ -140,6 +140,7 @@
            <discharge-plan
                v-if="dialogs.dischargePlan.show"
                :plan="plan"
                :batt="batt"
                @changeParams="changeParams"></discharge-plan>
        </el-dialog>
        <!-- 放电计划延时 -->
@@ -186,6 +187,7 @@
            discharge_stateList: constPlan.state,//测试状态
            dischargeReason: constPlan.stopReason,  // 放电异常原因
            pageAll: 0,
            batt: {},
            formData: {
                binf: {
                    StationName1: '',    //维护区
@@ -260,7 +262,8 @@
        // 显示放电参数修改的面板
        showDischargePlanDialog(row) {
            this.plan = row;
            this.dialogs.dischargePlan.show = true;
            console.log(row);
            this.getBattGroupInfo(row.Battgroupid);
        },
        changeParams() {
            // 关闭弹出框
@@ -552,6 +555,22 @@
        goAddPlan() {
            this.$router.push("/jobManage/addplan1");
        },
        getBattGroupInfo(BattGroupId) {
            this.$apis.dataMager.battGroupMager
                .getBattGroupInfo(BattGroupId)
                .then((res) => {
                    let rs = JSON.parse(res.data.result);
                    if (rs.code == 1) {
                        this.batt = rs.data[0];
                        this.dialogs.dischargePlan.show = true;
                    } else {
                        this.$layer.msg("未获取到电池组的信息");
                    }
                })
                .catch((error) => {
                    console.log(error);
                });
        },
    },//methods
}
src/pages/pageSetting/components/cardWrapper.vue
@@ -1,7 +1,12 @@
<template>
    <div class="card-wrapper">
        <div class="card-wrapper-container">
            <div class="card-wrapper-title">{{ title }}</div>
            <div class="card-wrapper-title">
                {{ title }}
                <div class="card-wrapper-title-tools">
                    <slot name="tools"></slot>
                </div>
            </div>
            <div class="card-wrapper-content">
                <slot></slot>
            </div>
@@ -41,9 +46,15 @@
    text-align: left;
}
.card-wrapper-title {
    position: relative;
    min-width: 360px;
    padding: 6px 0;
    padding: 8px 0;
    margin-bottom: 8px;
    border-radius: 4px;
}
.card-wrapper-title-tools {
    position: absolute;
    top: 5px;
    right: 8px;
}
</style>
src/pages/pageSetting/components/menuSetting.vue
@@ -1,31 +1,23 @@
<template>
    <div class="menu-setting">
        <card-wrapper title="配置">
            <el-button
            type="primary"
            size="mini"
            slot="tools"
            @click="updateMenu">提交</el-button>
            <el-tree
                ref="menuTree"
                :data="menus"
                show-checkbox
                node-key="id"
                :default-checked-keys="checkedKeys"
                :current-node-key="currentKeys"
                :props="defaultProps"
                @check="checkChange"></el-tree>
        </card-wrapper>
        <card-wrapper class="left32 page-menu" title="预览">
            <el-menu>
                <template v-for="menu in menus">
                    <el-submenu v-if="menu.childrens" :key="menu.name" :index="menu.name">
                        <template slot="title">
                            <i v-if="menu.icon" :class="menu.icon"></i>
                            <span>{{ menu.label }}</span>
                        </template>
                        <el-menu-item
                            v-for="child in menu.childrens"
                            :key="child.name"
                            :index="child.name">
                            {{ child.label }}
                        </el-menu-item>
                    </el-submenu>
                    <el-menu-item v-else :index="menu.name" :key="menu.name">
                        <div class="submenu__title">
                            <i class="el-icon-s-home"></i>
                            <span slot="title">{{ menu.label }}</span>
                        </div>
                    </el-menu-item>
                </template>
            </el-menu>
        <card-wrapper class="left32 page-menu" title="实时预览">
            <page-nav :menus="menus"></page-nav>
        </card-wrapper>
    </div>
</template>
@@ -33,16 +25,114 @@
<script>
import CardWrapper from "@/pages/pageSetting/components/cardWrapper";
import getPageMenu from "@/assets/js/tools/getPageMenu";
import PageNav from "@/components/PageNav";
export default {
    name: "menuSetting",
    components: {
        CardWrapper
        CardWrapper,
        PageNav,
    },
    data() {
        return {
            menus: getPageMenu(),
            defaultProps: {
                children: 'childrens',
                label: 'label'
            },
            checkedKeys: [],
            currentKeys: "",
        }
    },
    methods: {
        getPageMenu() {
            this.$apis.pageSetting.getPageMenu().then(res=>{
                let rs = JSON.parse(res.data.result);
                let data = [];
                if(rs.code == 1) {
                    data = rs.data;
                }
                this.changeMenus(this.menus, data);
                this.changeChangeKeys(this.menus);
            }).catch(error=>{
                console.log(error);
            });
        },
        changeChangeKeys(menus) {
            this.checkedKeys = [];
            menus.forEach(menus=>{
                if(menus.enableduse && menus.noChild) {
                    this.checkedKeys.push(menus.id);
                }
                if(menus.childrens) {
                    menus.childrens.forEach(children=>{
                        if(children.enableduse) {
                            this.checkedKeys.push(children.id);
                        }
                    });
                }
            });
        },
        updateMenu() {
            let loading = this.$layer.loading();
            let menus = getPageMenu();
            menus[0].childrens = [];
            this.changeMenus(menus, this.menus);
            this.$apis.pageSetting.updatePageMenu(menus).then(res=>{
                let rs = JSON.parse(res.data.result);
                if(rs.code == 1) {
                    this.$layer.msg('修改成功');
                }else {
                    this.$layer.msg('修改失败');
                }
                this.$layer.close(loading);
            }).catch(error=>{
                this.$layer.close(loading);
                this.$layer.msg('修改失败');
            });
        },
        changeMenus(menus, list) {
            menus.forEach(menu=>{
                let item = "";
                for(let i=0; i<list.length; i++) {
                    if(menu.id == list[i].id) {
                        item = list[i];
                        break;
                    }
                }
                if(item && item.childrens) {
                    item.childrens.forEach(children=>{
                        for(let i=0; i<menu.childrens.length; i++) {
                            let item2 = menu.childrens[i];
                            if(item2.id == children.id) {
                                item2.enableduse = children.enableduse;
                                break;
                            }
                        }
                    });
                }
            });
        },
        checkChange() {
            let checkedKeys = this.$refs.menuTree.getCheckedKeys();
            this.menus.forEach(menu=>{
               if(menu.childrens) {
                   menu.childrens.forEach(children=>{
                       let isIn = false;
                       for(let i=0; i<checkedKeys.length; i++) {
                           if(children.id == checkedKeys[i]) {
                               isIn = true;
                               break;
                           }
                       }
                       children.enableduse = isIn;
                   });
               }
            });
        }
    },
    mounted() {
        this.getPageMenu();
    }
}
</script>