{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\views\\main\\systemManagement\\MenuManger.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\views\\main\\systemManagement\\MenuManger.vue","mtime":1667327530028},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport portalApi from '@/api/portal.js'\r\nconst HtMenuManager = () => import('@/components/system/HtMenuManager.vue')\r\nimport IconPanl from '@/components/selector/IconPanl.vue'\r\n\r\nimport IconDialog from '@/components/dialog/IconDialog.vue'\r\nimport req from '@/request.js'\r\nexport default {\r\n    name: 'MenuManager',\r\n    components: {\r\n        HtMenuManager,\r\n \r\n        IconDialog,\r\n        IconPanl,\r\n    },\r\n    data() {\r\n        return {\r\n            isFrontMenu: false,\r\n            isHref: false, //是否是添加URL菜单\r\n            editMenuFormVisible: false,\r\n            treeMenuData: [],\r\n            defaultMenuProps: {\r\n                children: 'children',\r\n                label: 'name',\r\n            },\r\n            treeData: [],\r\n            defaultProps: {\r\n                children: 'children',\r\n                label: 'name',\r\n            },\r\n            data: [],\r\n            pageResult: {\r\n                page: 1,\r\n                pageSize: 20,\r\n                total: 0,\r\n            },\r\n            handleDialog: false,\r\n            dialogVisible: false,\r\n            menu: {\r\n                alias: '',\r\n                tabsStyle: '',\r\n                sysMethods: [],\r\n                open: true,\r\n                openType: \"1\",\r\n                href: '',\r\n                status: 1,\r\n            },\r\n            tabsStyle: {\r\n                tabType: null\r\n            },\r\n            currentNodeData: {},\r\n            hasParent: false,\r\n            batchSortDialog: false, //子菜单批量排序侧边弹框\r\n            subMenuList: [], //子菜单集合\r\n            uploadDialogVisible: false,\r\n            fileList: [],\r\n            parentMenuId: '',\r\n        }\r\n    },\r\n    methods: {\r\n        clearIcon() {\r\n            this.menu.menuIcon = ''\r\n            this.$forceUpdate()\r\n        },\r\n        choseIcon(icon) {\r\n            this.menu.menuIcon = icon\r\n            this.$forceUpdate()\r\n        },\r\n        showIconPanl() {},\r\n        handleBatchSortClose() {\r\n            this.batchSortDialog = false\r\n        },\r\n        //保存子菜单批量排序\r\n        save() {\r\n            portalApi.saveBatch(this.subMenuList).then((data) => {\r\n                this.batchSortDialog = false\r\n                this.$refs.htMenuManager.$refs.htMenuTree.loadData()\r\n                this.$message({\r\n                    showClose: true,\r\n                    message: data.message,\r\n                    type: 'success',\r\n                })\r\n            })\r\n        },\r\n        //移动菜单确认事件\r\n        handleSave() {},\r\n        handleMenuNodeClick(node) {},\r\n        handleClose() {\r\n            this.handleDialog = false\r\n        },\r\n        icons(icon) {\r\n            this.menu.menuIcon = icon\r\n        },\r\n        async handleNodeClick(data) {\r\n            if (data.href) {\r\n                this.isHref = true\r\n            } else {\r\n                this.isHref = false\r\n            }\r\n            this.getEditData(data)\r\n            this.currentNodeData = data\r\n        },\r\n        menuAction(command) {\r\n            //判断是否是添加前端下级菜单\r\n            if (command.node.key == '3' && command.action != 'addHref') {\r\n                this.isFrontMenu = true\r\n            } else {\r\n                this.isFrontMenu = false\r\n            }\r\n            //判断是否是添加URL菜单\r\n            if (command.action == 'addHref') {\r\n                this.isHref = true\r\n            } else if (command.action == 'edit' && command.href) {\r\n                this.isHref = true\r\n            } else {\r\n                this.isHref = false\r\n            }\r\n            this.action = command.action\r\n            this.editMenuFormVisible = false\r\n            let node = command.node\r\n            let data = command.data\r\n            let action = command.action\r\n            this.currentNodeData = data\r\n            this.menu = {\r\n                ...this.menu,\r\n                ...{\r\n                    href: '',\r\n                    name: '',\r\n                    alias: '',\r\n                    menuIcon: '',\r\n                    sn: '',\r\n                    activeTab: '',\r\n                    tabsStyle: '',\r\n                    openType: \"1\",\r\n                    sysMethods: [],\r\n                    status: 1,\r\n                },\r\n            }\r\n            delete this.menu.tenantId\r\n            switch (action) {\r\n                case 'batchSort':\r\n                    this.subMenuList = [...data.children]\r\n                    this.batchSortDialog = true\r\n                    break\r\n                case 'add':\r\n                    this.menu.id = ''\r\n                    this.menu.parentId = data.id\r\n                    this.hasParent = true\r\n                    this.menu.path = data.path\r\n                    this.editMenuFormVisible = true\r\n                    this.menu.openType = \"1\",\r\n                    this.tabsStyle = {\r\n                        tabType: null\r\n                    }\r\n                    break\r\n                case 'addHref':\r\n                    const key =\r\n                        Date.parse(new Date()) +\r\n                        '_' +\r\n                        Math.ceil(Math.random() * 99999)\r\n                    this.menu.alias = 'href/template/' + key\r\n                    this.menu.id = ''\r\n                    this.menu.parentId = data.id\r\n                    this.hasParent = true\r\n                    this.menu.path = data.path\r\n                    this.editMenuFormVisible = true\r\n                    this.menu.openType = \"1\",\r\n                    this.tabsStyle = {\r\n                        tabType: null\r\n                    }\r\n                    break\r\n                case 'edit':\r\n                    this.getEditData(data)\r\n                    break\r\n                case 'delete':\r\n                    this.$confirm(`是否删除菜单[${data.name}]?`, '提示', {\r\n                        confirmButtonText: '确定',\r\n                        cancelButtonText: '取消',\r\n                        type: 'success',\r\n                    })\r\n                        .then(() => {\r\n                            this.removeMenuById(data.id)\r\n                        })\r\n                        .catch(() => {})\r\n\r\n                    break\r\n                case 'moveto':\r\n                    const this_ = this\r\n                    portalApi.getMenuTree().then((data) => {\r\n                        this_.handleDialog = true\r\n                        this_.treeMenuData = data\r\n                    })\r\n                    // this.$message(\"暂未提供该功能\");\r\n\r\n                    break\r\n                case 'export':\r\n                    this.exportFile(data)\r\n                    break\r\n                case 'import':\r\n                    this.importFile(data)\r\n                default:\r\n                    break\r\n            }\r\n        },\r\n        exportFile(data) {\r\n            let id = data.id\r\n            let url =\r\n                window.context.portal +\r\n                '/sys/sysMenu/v1/export?parentMenuId=' +\r\n                id\r\n            req.download(url)\r\n        },\r\n        handleImport(param) {\r\n            let formData = new FormData()\r\n            formData.append('file', param.file)\r\n            portalApi\r\n                .importSysMenus(formData, this.parentMenuId)\r\n                .then((resp) => {\r\n                    if (resp.state) {\r\n                        this.$message({type: 'success', message: '导入成功'})\r\n                        this.uploadDialogVisible = false\r\n                        this.fileList = []\r\n                        this.$refs.htMenuManager.$refs.htMenuTree.loadData()\r\n                    } else {\r\n                        this.beforeClose()\r\n                    }\r\n                })\r\n        },\r\n        beforeClose() {\r\n            this.uploadDialogVisible = false\r\n            this.fileList = []\r\n        },\r\n        importFile(data) {\r\n            this.parentMenuId = data.id\r\n            this.uploadDialogVisible = true\r\n        },\r\n        getEditData(data) {\r\n            this.editMenuFormVisible = false\r\n            this.hasParent = false\r\n            this.$http\r\n                .get('${portal}/sys/sysMenu/v1/getJson?id=' + data.id)\r\n                .then((response) => {\r\n                    this.menu = response.data\r\n                    this.editMenuFormVisible = true\r\n                    this.$validator.validate()\r\n                    if (this.menu.tabsStyle) {\r\n                        this.tabsStyle = JSON.parse(this.menu.tabsStyle)\r\n                    } else {\r\n                        this.tabsStyle = {\r\n                            tabType: null\r\n                        }\r\n                    }\r\n                })\r\n        },\r\n        removeMenuById(id) {\r\n            portalApi.removeMenuById(id).then(\r\n                (data) => {\r\n                    this.$refs.htMenuManager.$refs.htMenuTree.loadData()\r\n                    this.$message({\r\n                        showClose: true,\r\n                        message: '删除成功',\r\n                        type: 'success',\r\n                    })\r\n                },\r\n                (error) => {}\r\n            )\r\n        },\r\n        beforeSaveData() {\r\n            if (this.tabsStyle.tabType) {\r\n                this.menu.tabsStyle = JSON.stringify(this.tabsStyle)\r\n            }\r\n        },\r\n        afterSaveData() {\r\n            // return;\r\n            let msg = '是否继续添加下级菜单?'\r\n            if (this.menu.id) {\r\n                msg = '是否继续编辑菜单?'\r\n            }\r\n            this.$confirm(msg, '提示', {\r\n                confirmButtonText: '确定',\r\n                cancelButtonText: '取消',\r\n                type: 'success',\r\n            })\r\n                .then(() => {\r\n                    if (!this.menu.id) {\r\n                        this.menu = {\r\n                            ...this.menu,\r\n                            ...{\r\n                                href: '',\r\n                                name: '',\r\n                                alias: '',\r\n                                menuIcon: '',\r\n                                tabsStyle: '',\r\n                                sn: '',\r\n                                openType: \"1\",\r\n                                activeTab: '',\r\n                                sysMethods: [],\r\n                                status: 1,\r\n                            },\r\n                        }\r\n                    }\r\n                })\r\n                .catch(() => {\r\n                    if (!this.menu.id) {\r\n                        this.menu = {\r\n                            ...this.menu,\r\n                            ...{\r\n                                href: '',\r\n                                name: '',\r\n                                alias: '',\r\n                                menuIcon: '',\r\n                                sn: '',\r\n                                openType: \"1\",\r\n                                activeTab: '',\r\n                                tabsStyle: '',\r\n                                sysMethods: [],\r\n                                status: 1,\r\n                            },\r\n                        }\r\n                    }\r\n                    this.editMenuFormVisible = false\r\n                })\r\n            this.$refs.htMenuManager.$refs.htMenuTree.loadData()\r\n        },\r\n        addSysMethods() {\r\n            this.menu.sysMethods.push({\r\n                name: '',\r\n                alias: '',\r\n                methodType: '1',\r\n                requestUrl: '',\r\n            })\r\n        },\r\n        removeSysMethod(row) {\r\n            this.menu.sysMethods.remove(row)\r\n        },\r\n    },\r\n}\r\n",null]}