{"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]}